Automatic door

ABSTRACT

In some implementations a storage device having a voice-recognition engine stored thereon is coupled to a microcontroller, a device-controller for an automatic door is operably coupled to the microcontroller.

BACKGROUND

1. Field of Invention

This disclosure relates generally to door openers, and more particularlyto electrically actuated door opening and closing devices.

2. Description of Related Art

People with physical mobility difficulties often rely on external meansto open and close doors. Those external means include physicalassistance of another person, an animal to open and close doors, and/orelectrically and/or hydraulically actuated automatic doors thatphysically move and transport a door.

Conventional control of the electrically and/or hydraulically actuatedautomatic doors has been very limited. The conventional control devicesof the automatic doors have been limited to tactile devices that includebuttons to direct movement of the automatic door. The tactile controldevices require a certain amount of physical dexterity that a particularperson may or may not have. At best, the tactile control devices areinconvenient to use for some people, and under the worse situations, thetactile control devices are impossible to use for other people.

Conventional control of electrically and/or hydraulically actuated doorsis also quite efficient in having a linear, prompt and unequivocalresponse to sensory input that means ‘open’ or ‘close’.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an overview of a system to control anautomatic door, according to an implementation;

FIG. 2 is a block diagram of apparatus to control an automatic door inreference to the biological condition of a person, according to animplementation;

FIG. 3 is a block diagram of a command interface unit apparatus thataccording to an implementation receives information from a human andgenerates command(s) from the human information, in reference toauthority of the human and the state of the mind of the human;

FIG. 4 is a block diagram of a command interface unit apparatus thataccording to an implementation receives information from a human andgenerates command(s) from the human information, in reference toauthority of the human and the state of the mind of the human;

FIG. 5 is a block diagram of a plurality of input devices that receiveinformation in any one of a number of different communication methods,according to an implementation;

FIG. 6 is a block diagram of a voice data receiver that receives audioinformation, according to an implementation;

FIG. 7 is a block diagram of an automatic door controller that receivesinstructions and generates electrical signals that control an automaticdoor, according to an implementation;

FIG. 8 is a block diagram of a voice-recognition unit that receivesaudio information and generates commands that control an automatic door,according to an implementation;

FIG. 9 is a flowchart of a method to control an automatic door,according to an implementation;

FIG. 10 is a flowchart of a method to control an automatic door,according to an implementation;

FIG. 11 is a flowchart of a method to control an automatic door,according to an implementation involving trigger words;

FIG. 12 is a flowchart of a method to control an automatic door,according to an implementation involving trigger override command setwords;

FIG. 13 is a flowchart of a method to control an automatic door,according to an implementation involving trigger words;

FIG. 14 is a flowchart of a method to update a database of authoritiesof an automatic door, according to an implementation;

FIG. 15 is a flowchart of a method to control a device-controller of anautomatic door, according to an implementation;

FIG. 16 is a flowchart of a method to control a device-controller of anautomatic door, according to an implementation;

FIG. 17 is a flowchart of a method to control a device-controller of anautomatic door, according to an implementation;

FIG. 18 is a flowchart of a method to control a device-controller of anautomatic door, according to an implementation;

FIG. 19 is a flowchart of a method of detecting, evaluating andresponding to an obstacle in the path of an automatic door whileopening, according to an implementation;

FIG. 20 is a flowchart of a method of detecting, evaluating andresponding to an obstacle in the path of an automatic door whileopening, according to an implementation;

FIG. 21 is a flowchart of a method of detecting, evaluating andresponding to an obstacle in the path of an automatic door whileclosing, according to an implementation;

FIG. 22 is a flowchart of a method of detecting, evaluating andresponding to an obstacle in the path of an automatic door whileclosing, according to an implementation;

FIG. 23 is a flowchart of a method of detecting, evaluating andresponding to a person on the interior side of an exterior door,according to an implementation;

FIG. 24 is a flowchart of a method of detecting, evaluating andresponding to a person on the exterior side of an exterior door,according to an implementation;

FIG. 25 is a block diagram of a voice-recognition engine, according toan implementation;

FIG. 26 is a block diagram of a voice-recognition unit for anactuated-door, according to an implementation;

FIG. 27 is an electrical schematic diagram of an electrical circuituseful in the implementation of the voice-recognition apparatus in FIG.26, according to an implementation;

FIG. 28 is an electrical schematic diagram of an internal microphonecircuit for an actuated-door, according to an implementation;

FIG. 29 is an electrical schematic diagram of a voice-recognitionapparatus to control an actuated-door, according to an implementation;

FIG. 30 is an electrical schematic diagram of a speaker circuit for anactuated-door, according to an implementation;

FIG. 31 is a block diagram of a computer environment that controlsautomatic doors from audio voice commands, in accordance with animplementation;

FIG. 32 is a schematic perspective view of an automatic electric slidingdoor, according to an implementation having two door panels;

FIG. 33 is a block diagram of a one dimensional automatic door,according to an implementation that is specifically adapted for liftinga person in and out of a pool; and

FIG. 34 is a block diagram of a device-controller of an automatic door,according to an implementation using DPTD relays.

DETAILED DESCRIPTION

The shortcomings, disadvantages and problems in the Description ofRelated Art are addressed herein, which will be understood by readingand studying the following specification.

Apparatus, systems, and methods of varying scope are described herein.Further aspects and advantages will become apparent by reference to thedrawings and by reading the detailed description that follows. In thefollowing detailed description, reference is made to the accompanyingdrawings that form a part hereof, and in which is shown by way ofillustration specific implementations which may be practiced. Theseimplementations are described in sufficient detail to enable thoseskilled in the art to practice the implementations, and it is to beunderstood that other implementations may be utilized and that logical,mechanical, electrical and other changes may be made without departingfrom the scope of the implementations. The following detaileddescription is, therefore, not to be taken in a limiting sense.

The detailed description is divided into five sections. In the firstsection, a system level overview is described. In the second section,apparatus of implementations are described. In the third section,implementations of methods are described. In the fourth section, ahardware and the operating environment in conjunction with whichimplementations may be practiced are described. Finally, in the fifthsection, a conclusion of the detailed description is provided.

System Level Overview

FIG. 1 is a block diagram of an overview of a system 100 to control anautomatic door, according to an implementation. System 100 provides aconvenient means to control an electrically or hydraulically-controlledautomatic door.

System 100 includes a command interface unit 102 that receivesinformation in any one of a number of different communication methodsfrom a human and transmits audio command(s) 104 to a processor 106.Examples of commands 104 include “lock” “unlock” “close” “open”“activate” and “help”. One implementation of a number of differentinterface apparatus for the command interface unit 102 are described inFIG. 3 and another implementation of a number of different interfaceapparatus for the command interface unit 102 are described in FIG. 4.

The processor 106 in system 100 receives the command(s) 104 andgenerates one or more instruction(s) 108 that are specifically tailoredfor a device-controller 110 that accomplishes the command.

The device-controller 110 receives the instruction(s) 108 and generatesone or more electric signal(s) 112 that are specifically tailored for anautomatic door controller 114 that accomplishes the one or moreinstruction(s) 108. The device-controller 110 transmits the electricalsignal(s) 112 to the automatic door 114. When the automatic dooroperates in accordance with the electrical signal(s) 112 from thedevice-controller 110, the automatic door controller 114 performs thecommand(s) 104 from the command interface unit 102. The automatic doorcontroller 114 controls an automatic electric sliding door 3200 in FIG.32 or an automatic electric swing door 3300 in FIG. 33.

The system level overview of the operation of an implementation isdescribed in this section of the detailed description.

While the system 100 is not limited to any particular command interfaceunit 102, command(s) 104, processor 106, instruction(s) 108,device-controller 110, electric signal(s) 112, and automatic door 114,for sake of clarity a simplified command interface unit 102, command(s)104, processor 106, instruction(s) 108, device-controller 110, electricsignal(s) 112, and automatic door controller 114 are described.

Apparatus Implementations

In the previous section, a system level overview of the operation of animplementation was described. In this section, the particular apparatusof such an implementation are described by reference to a series ofdiagrams.

FIG. 2 is a block diagram of apparatus 200 to control an automatic doorin reference to the biological condition of a person, according to animplementation. Apparatus 200 provides a convenient means to control andelectrically-controlled automatic door in reference to person healthcarecondition.

Apparatus 200 includes one or more sensor(s) 202 of a person'sbiological condition. Examples of the sensor(s) 202 include heart ratesensor temperature sensor and blood pressure sensor. In apparatus 200,biological sensor data 204 from the person healthcare sensor(s) 202 arereceived by the processor 106. The instruction(s) 108 that are generatedby the processor from the command(s) 104 of the command interface unit102 are generated in reference to the person healthcare data 204. Thusapparatus 200 generates instruction(s) 108 that ultimately control theautomatic door controller 114 in any manner that is less detrimental tothe person in consideration of the biological sensor data as indicatedby the biological sensor data 204.

FIG. 3 is a block diagram of a command interface unit apparatus 300 thataccording to an implementation receives information from a human andgenerates command(s) 104 from the human information, in reference toauthority of the human and the state of the mind of the human. Apparatus300 provides command(s) 104 that are suitable to be processed by aprocessor in control of an automatic door that are generated inreference to the authority in the state of mind of the human. Apparatus300 is one implementation of the command interface unit 102 and FIG. 1and FIG. 2.

The command interface unit 102 shown in FIG. 3 includes an input device302 that receives information in any one of a number of differentcommunication methods. One implementation of a number of different inputdevices 302 is described in FIG. 5. The received information isprocessed in a three-pronged approach. In a first prong, the informationis processed by a command interpreter 308. The command interpreteranalyzes the information and extracts a command 310 from theinformation. Examples of commands 310 include “lock” “unlock” “close”“open” “activate” and “help”. In a second prong, the information isprocessed by a state-of-mind filter 312. The state-of-mind filter 312analyzes the information and extracts from the information indicators ofthe emotional state of the operator, indicators of the competency of theoperator, and/or indicators of the state-of-mind of the operator 314. Ina third prong, the information is processed by an authority filter 316.The authority filter 316 analyzes the information and extracts from theinformation an indicator 318 of the authority of the operator.

An authority engine 312 receives the command 310, the state-of-mind 314and the indicator of authority of the operator 318. The authority engine320 and analyzes the command 310, the state-of-mind 314 and theindicator of authority of the operator 318 in reference to an authoritydatabase 322. In one implementation the authority engine determineswhether or not the command 310 is authorized by the authority of theoperator 318. If the command 310 is not authorized by the authority ofthe operator 318, the command 310 is rejected. In another implementationthe authority engine 320 determines whether or not the state-of-mind 314of the operator is of a sufficient level for the command 310. If thestate-of-mind 314 for the operator is not of a sufficient level for thecommand 310, command 310 is rejected.

If the authority engine 320 determines that both the state-of-mind 314and the authority 318 of the operator are sufficient for the command310, the authority engine generates or designates an authorized command324 from the command 310.

FIG. 4 is a block diagram of a command interface unit apparatus 400 thataccording to an implementation receives information from a human andgenerates command(s) 104 from the human information, in reference toauthority of the human and the state of the mind of the human. Apparatus400 provides command(s) 104 that are suitable to be processed by aprocessor in control of an automatic door that are generated inreference to the authority in the state of mind of the human. Apparatus400 is one implementation of the command interface unit 102 and FIG. 1and FIG. 2.

The command interface unit 102 shown in FIG. 4 includes an input device402 that receives information in any one of a number of differentcommunication methods. One implementation of a number of different inputdevices 402 is described in FIG. 5. The received information isprocessed in a two-pronged approach. In a first prong, the informationis processed by an authority filter 316. The authority filter 316analyzes the information and extracts from the information an indicator318 of the authority of the operator. Thereafter, the information isprocessed by a command interpreter 402. The command interpreter analyzesthe information and extracts a command 310 from the information.Examples of commands 310 include “lock” “unlock” “close” “open”“activate” and “help”. In a second prong, the information is processedby a state-of-mind filter 312. The state-of-mind filter 312 analyzes theinformation and extracts from the information indicators of theemotional state of the operator, indicators of the competency of theoperator, and/or indicators of the state-of-mind of the operator 314.

An authority engine 312 receives the command 310, the state-of-mind 314and the indicator of authority of the operator 318. The authority engine320 and analyzes the command 310, the state-of-mind 314 and theindicator of authority of the operator 318 in reference to an authoritydatabase 322. In one implementation the authority engine determineswhether or not the command 310 is authorized by the authority of theoperator 318. If the command 310 is not authorized by the authority ofthe operator 318, the command 310 is rejected. In another implementationthe authority engine 320 determines whether or not the state-of-mind 314of the operator is of a sufficient level for the command 310. If theauthority for the operator is not of a sufficient level for the command310, command 310 is rejected. If the authority for the operator is of asufficient level for the command 310, command 310 is accepted.

FIG. 5 is a block diagram of a plurality of input devices 500 thatreceive information in any one of a number of different communicationmethods, according to an implementation. Input devices 500 areimplementations of the input devices 302 and FIG. 3 and FIG. 4.

Input devices 302 include a conventional keyboard data receiver 502,commonly known as a keyboard. In some implementations the keyboardincludes alphanumeric keys for entering alphanumeric data. Input devices302 also include an audio data receiver 504. Input devices also includea synaptic data receiver 506. The receivers 502, 504 and 506 can beimplemented either with a wireless connection to the command interfaceunit 102 and/or with a wired connection to the command interface unit102. The receivers 502, 504 and 506 capture information 508 from anoperator that is processed by the command interface unit 102 in FIG. 1,FIG. 2 and/or FIG. 3.

A receiver that is not shown in FIG. 5 is a pressure sensitive device(piezo electric device) mounted on and/or in the top of a tooth, thatdetects/senses pressure and transmits the pressure reading via awireless connection (e.g. a Bluetooth communication link, or Zigbeecommunication link) to a processor. The pressure reading/measurementand/or time duration of the pressure reading/measurement is interpretedas an indicator or command to an external device, such as an indicatorof a speed and/or direction of a lift device. Specifications for theBluetooth communication link are published by the Bluetooth SpecialInterest Group located at 500 108th Avenue NE, Suite 250, Bellevue,Wash. 98004 Phone Number: +1.425.691.3535. Specifications for the ZigBeecommunication link are published by the ZigBee Alliance located at 2400Camino Ramon, Suite 375, San Ramon, Calif. 94583. Some implementationsthe wireless tooth device tooth also detects/senses audio vibrations andtransmits representations of the audio vibrations via the wirelessconnection to the processor. The representations of the audio vibrationsare interpreted as an indicator or command to an external device, suchas an indicator of a speed, amplitude or throttle (variation of poweroutput) and/or direction of a lift device. The audio vibrations includevibrations transmitted through the solid matter of the tooth and the jawbone and/or audio vibrations transmitted through the air and the mouthsurrounding the audio receiver. Various implementation of the devicemounted on a tooth include audio microphone, temperature monitor, salivaacidity sensor, pulse monitor sensor, voice vibration sensor (to sensejawbone vibrations), and with bit control for throttling of the speed ofthe actuated-door.

FIG. 6 is a block diagram of a voice data receiver 600 that receivesaudio information, according to an implementation. Voice data receiver504 in FIG. 6 is one implementation of the voice data receiver 504 inFIG. 5. The voice data receiver 504 in FIG. 6 includes a microphone 602that is operably coupled to a voice-recognition unit 604. In someimplementations, the voice-recognition unit 604 includes a component(not shown) that suppresses or filters background environmental noise.Voice-recognition apparatus 2600 in FIG. 26 shows an implementation ofvoice-recognition unit 604. Voice-recognition apparatus 2900 in FIG. 29shows an implementation of voice-recognition unit 604.

In some implementations the microphone 602 is located in close proximityto the mouth of the speaker in order to obtain clear audio data from thespeaker. For example in some further implementations, the microphone 602is located on a Bluetooth enabled earpiece. In other implementations,the microphone 602 is mounted on the end of a stalk of a headset. Inother implementations, the microphone is mounted on a lapel clip.

FIG. 7 is a block diagram of an automatic door controller 700 thatreceives instructions and generates electrical signals that control anautomatic door, according to an implementation. Lift controller 700 isone example of system 100 in FIG. 1 and apparatus 200 in FIG. 2. Theautomatic door controller 700 includes a user interface 702 for deviceconfiguration that is operable to display, receive and/or store deviceconfiguration information for an automatic door, such as lift 112 inFIG. 1 and FIG. 2. The device configuration user interface 702 isoperably coupled to a modifiable logic circuit 704 that is operable tocontrol the lift.

In one implementation, the modifiable logic circuit 704 is afield-programmable gate-array (FPGA) circuit in reference to the deviceconfiguration. In the FPGA implementation, the FPGA circuit is operableto receive digital audio input, and extract a command (e.g. command 104in FIG. 1) that is relevant to an automatic door (e.g. automatic doorcontroller 114 in FIG. 1) and the automatic door controller 700 includesa transmitter that is operable to send the command to an automaticdoor-controller (e.g. 110 in FIG. 1).

FIG. 8 is a block diagram of a voice-recognition unit 800 that receivesaudio information and generates commands that control an automatic door,according to an implementation. Voice-recognition unit 800 includes aninput device 302 that receives information in any one of a number ofdifferent communication methods. Examples of communication methodsinclude audio and/or synaptic communication.

Voice-recognition unit 800 also includes a volume filter 802 thatperforms action 1104 in FIG. 11 and/or action 1204 in FIG. 12 on theinformation received from the input device 302.

The information received from the input device is processed by a commandinterpreter 308. The command interpreter analyzes the information andextracts a command 310 from the information.

Some implementations of voice-recognition unit 800 includes a commandset filter 804 that includes one or more filters of the command set. Forexample, in some implementations, the command set filter 804 includesthe authority filter 316 of FIG. 3. Some implementations of the commandset filter 804 also include the state-of-mind filter 312 of FIG. 3. Theimplementations of apparatus 80 that include the command set filter 804also include an authority engine 320 as described in FIG. 3. Theauthority engine 320 generates an authorized command 324.

Method Implementations

In the previous section, apparatus of the operation of an implementationwas described. In this section, the particular methods performed by aprocessor of such an implementation are described by reference to aseries of flowcharts.

In some implementations, methods 900-1800 are implemented as a sequenceof instructions which, when executed by a processor, such as processorunit 3104 in FIG. 31, microcontroller 2602 in FIG. 26 or processor 106in FIG. 1 and FIG. 2, cause the processor to perform the respectivemethod. In other implementations, methods 900-1800 are implemented as acomputer-accessible or a computer-usable medium having executableinstructions capable of directing a processor, such as processor unit3104 in FIG. 31, to perform the respective method. In varyingimplementations, the medium is a magnetic medium, an electronic medium,or an optical medium.

FIG. 9 is a flowchart of a method 900 to control an automatic door,according to an implementation. Method 900 receives information from ahuman and generates a command from the human information, in referenceto authority of the human and the state of the mind of the human. Method900 generates command(s) that are suitable to be processed by aprocessor in control of an automatic door. In some implementations,method 900 is performed by the command interface unit 102 and FIG. 1 andFIG. 2.

Method 900 includes receiving 902 information from any one of a numberof different communication devices. FIG. 5 describes someimplementations of communication devices. Method 900 includes processingthe information by analyzing the information and extracting 904 acommand from the information. Examples of the command include “lock”“unlock” “close” “open” “activate” and “help”. Method 900 includesprocessing the information by analyzing and extracting 906 from theinformation indicators of the emotional state of the operator,indicators of the competency of the operator, and/or indicators of thestate-of-mind of the operator.

Method 900 includes processing the information by analyzing theinformation and extracting 908 from the information an indicator of theauthority of the operator. In some implementations, extracting anindication of authority of the operator includes identifying theoperator. For example, where the information 902 is audio informationfrom a human speaker, the identity of the human speaker is determinedand the authority of that speaker is then determined. In someimplementations, the speech pattern of the human speaker is compared toa database of known humans. The database is created prior to theperformance of method 900 from recorded speech sample recordings ofhumans who are authorized to enter the healthcare facility, such ahealthcare providers, non-professional employees of the healthcarefacility, people, and friends, relatives and/or coworkers of theoperator. Each human whose speech sample is recorded in the database isassociated with a particular authority. An example of an authority is“full authority” in which the human is authorized to exercise or commandall functions of the lift. Another example of an authority is “noauthority in which the human is not authorized to exercise or commandany function of the lift. In method 900, the database is accessed and acomparison of the information 902 to the speech samples in the databaseis performed. When the comparing determines the identity of the humanspeaker, the authority of the identified human is accessed and used asthe indicator of authority of the operator.

In method 900, the command, the state-of-mind and the indicator ofauthority of the operator is analyzed 910 to an authority database todetermine whether or not the command is authorized by the authority ofthe operator in consideration of the emotional state of the operator. Ifthe command is not authorized by the authority and emotional state ofthe operator, the command is rejected 912. In some implementations,rejecting 912 the command can include transmitting a notice of anattempted unauthorized command to supervisory personnel or lawenforcement agency. If the command is determined to be authorized, thecommand is transmitted 914 to the processor (e.g. 106 in FIG. 1) and thecommand 912 is performed by the lift. In some implementations, a log orjournal of all extracted commands in action 904 and the determination910 of the authority of the extracted commands is stored.

Method 1000 includes receiving 902 information from any one of a numberof different communication devices. FIG. 5 describes someimplementations of communication devices.

Method 1000 includes processing the information by analyzing theinformation and extracting 908 from the information an indicator of theauthority of the operator. In some implementations, extracting anindication of authority of the operator includes identifying theoperator. For example, where the information 902 is audio informationfrom a human speaker, the identity of the human speaker is determinedand the authority of that speaker is then determined. In someimplementations, the speech pattern of the human speaker is compared toa database of known humans. In method 1000, the database is accessed anda comparison of the information 902 to the speech samples in thedatabase is performed. When the comparing determines the identity of thehuman speaker, the authority of the identified human is accessed andused as the indicator of authority of the operator.

Method 1000 includes processing the information by analyzing theinformation and extracting 1002 a command from the information. Examplesof the command include “lock” “unlock” “close” “open” “activate” and“help”. Method 1000 includes processing the information by analyzing andextracting 906 from the information indicators of the emotional state ofthe operator, indicators of the competency of the operator, and/orindicators of the state-of-mind of the operator.

In method 1000, the command, the state-of-mind and the indicator ofauthority of the operator is analyzed 910 to an authority database todetermine whether or not the command is authorized by the authority ofthe operator in consideration of the emotional state of the operator. Ifthe command is not authorized by the authority and emotional state ofthe operator, the command is rejected 912. In some implementations,rejecting 912 the command can include transmitting a notice of anattempted unauthorized command to supervisory personnel or lawenforcement agency. If the command is determined to be authorized, thecommand is transmitted 914 to the processor (e.g. 106 in FIG. 1) and thecommand 912 is performed by the lift. In some implementations, a log orjournal of all extracted commands in action 1002 and the determination910 of the authority of the extracted commands is stored.

FIG. 11 is a flowchart of a method 1100 to control an automatic door,according to an implementation involving trigger words. Someimplementations of method 1100 include receiving audio, at block 1102. Adetermination is made as to whether or not the volume of the audio isbelow a threshold for a predetermined amount of time, at block 1104. Theaudio level being below the threshold for predetermined amount of timeis interpreted to be the end of a command sequence from the operator. Ifthe audio level is determined to be not below the threshold for thepredetermined amount of time at block 1104, method 1100 continues withreceiving audio at block 1102. If the audio level is equal to and/orgreater than the audio volume threshold for the predetermined amount oftime at block 1104 method 1100 continues by extracting a command fromthe audio, at block 1106. In some implementations method 1100 alsoincludes determining whether or not the command is a word or phrase in atrigger override word set, at block 1108. Examples of a trigger overrideword set include the words “stop” “wait” and “help”. If the command isdetermined to be in the trigger override word set at block 1108 then thecommand is performed at block 1110, and/or movement of the automaticdoor is ceased. If the command is not determined to be in the triggeroverride word set at block 1108 then a determination is made as towhether or not the command is in a trigger phrase word set, at block1112. The trigger phrase word set includes commands such that indicatethe intention by the operator to provide a functional command to theautomatic door. Examples of a trigger phrase word set include “modoorcommand” “door command” and “attention”. If the command is determined tonot be in the trigger phrase word set at block 1112, method 1100continues with receiving audio at block 1102. If the command isdetermined to be in the trigger phrase word set at block 1112, themethod continues by receiving a next command, at block 1114, and thenperforming the next command, at block 1116. Examples of commands thatare performed at block 1116 include “lock” “unlock” “close” “open”“activate” and “help” or other commands to actuate the automatic door ina particular direction and/or any particular speed.

One example of the predetermined amount of time in method 1100 andmethod 1200 is two (2) seconds, however other implementations otheramounts of time are implemented. One example of the threshold volume ofaudio in method 1100 is 70 dB, however other implementations of otherthreshold levels of audio volume are implemented. In someimplementations the amount of predetermined time and/or the thresholdlevel of audio volume can be modified through a user configurationinterface.

FIG. 12 is a flowchart of a method 1200 to control an automatic door,according to an implementation involving trigger override command setwords. Some implementations of method 1200 include receiving audio, atblock 1102. A determination is made as to whether or not the volume ofthe audio is above a threshold for a predetermined amount of time, atblock 1202. The audio level being above the threshold for predeterminedamount of time is interpreted to indicate a possible emergency situationin the which might be dangerous to operate the actuated-door. If theaudio level is determined to be not above the threshold for thepredetermined amount of time at block 1202, method 1200 continues withreceiving audio at block 1102. If the audio level is greater than theaudio volume threshold for the predetermined amount of time at block1202, method 1200 continues by stopping movement of the automatic doorat block 1108 and method 1200 continues with receiving audio at block1102. One example of the threshold volume of audio in method 1200 is 90dB, however other implementations of other threshold levels of audiovolume are implemented. In some implementations the amount ofpredetermined time and/or the threshold level of audio volume can bemodified through a user configuration interface.

FIG. 13 is a flowchart of a method 1300 to control an automatic door,according to an implementation involving disruptive audio volume. Someimplementations of method 1300 include receiving an initiation signal atblock 1302 and then transmitting an acknowledgment of the initiationsignal at block 1304. One example of an initiation signal is anindication of the processor or the automatic door being powered on. Oneexample of an acknowledgment of the initiation is an audio enunciationof instructions on how to operate the system. In some implementationsthe instructions include a recitation of voice command instructions.

Method 1300 includes receiving a trigger-phrase word-set ortrigger-override word-set, at block 1306. In some implementations,trigger-phrase word-set or trigger-override word-set is a recognition ofverbiage from an audio signal. The trigger-phrase word-set ortrigger-override word-set are described in conjunction with FIG. 11. Thetrigger-phrase word-set or trigger-override word-set is evaluated orcompared to determine if the trigger-phrase word-set or trigger-overrideword-set is trigger-phrase word-set, at block 1308. If thetrigger-phrase word-set or trigger-override word-set is a trigger-phraseword-set, then an acknowledgment of the trigger-phrase word-setpresented and the local environment, at block 1310. For example if thetrigger-phrase word-set “Molift™ command” is received at block 1306,then a “beep” sound is enunciated. The beep sound provides a cue to thespeaker of the trigger-phrase word-set that the system understands thatthe user has enunciated a trigger-phrase word-set and that the speakerintends to enunciate a command for performance by the system.

If the comparison at block 1308 determines that the trigger-phraseword-set or trigger-override word-set is not a trigger-phrase word-set,in which case the trigger-phrase word-set or trigger-override word-setis a trigger-override word-set or a command, then an acknowledgment ofthe command or trigger-override word-set is presented to the localenvironment, at block 1312. For example, the command or thetrigger-override word-set is enunciated by a speech generation module.The presentation of the command or the trigger-override word-set atblock 1312 provides an acknowledgment of the function that is to beperformed by the lift. In method 1300, performance of the command ortrigger-override word-set is started at block 1314 and the command ortrigger-override word-set is performed simultaneously during theenunciation representation of the command or trigger-override word-setat block 1312. In other implementations not shown the representation orenunciation of the command or trigger-override word-set is completed atblock 1312 before performance of the command begins at block 1314.

After the command or trigger-override word-set is presented orenunciated to the user at block 1312 and performance of the command ortrigger-override word-set has begun, a determination as to whether ornot the command or trigger-override word-set is a command to deactivate,at block 1316. If the command or trigger-override word-set is not adeactivation command, such as “sleep” then control is passed to block1306. If the command or trigger-override word-set is a deactivationcommand, then the method 1300 ends.

FIG. 14 is a flowchart of a method 1400 to update a database ofauthorities of an automatic door, according to an implementation. Adatabase of authorities is a database that associates a recording aspeech sample of a human with a healthcare relationship authority ofcontrol of the automatic door. The database can be accessed as areference to determine if particular speaker has authority to direct theautomatic door to perform a particular command or any commands at all.

Method 1400 includes recording a speech sample of a human, at block1402. In some implementations, the human is someone who will or couldcome into contact with a person in a healthcare facility. For example,the human is selected from the group of humans comprising humanprofessional healthcare providers (e.g. physicians, nurses,psychiatrists/psychologists and/or counselors), human non-professionalemployees of a healthcare facility (e.g. receptionists and/or janitors),people, and friends, relatives and coworkers of the person. In otherimplementations, the human is not only someone who will or could comeinto contact with a person in a hospital, but also is someone who worksin the healthcare facility but whose job functions would not ordinarilycall them into contact with any people, such as an IT worker in thecomputer data processing department. The benefit of recording a speechsample of only humans who might ordinarily come into contact with aperson is that the database of authorities will be more narrowlytailored in scope to the voices that that a voice recognition systemmight ordinarily be called upon to analyze. The benefit of recording aspeech sample of a human whose job functions would not ordinarily callthem into contact with any people is that the database of authoritieswill include speech samples of people who are clearly not authorized tobe involved in assistance with the door, thus providing more definitiveand conclusive negative identification of authorization by a voicerecognition system, which decreases to likelihood of a false positiveidentification of a speaker by the voice recognition system and/or afalse negative identification of the speaker by the voice recognitionsystem.

Method 1400 also includes associating the recording with a healthcarerelationship authority of control of the automatic door, at block 1404.In some implementations, the healthcare relationship authority of thehuman to the at least one person is selected from the group ofauthorities includes 1) full authority and 2) no authority. A healthcarerelationship authority of full authority provides authorization of thehuman to exercise or command all functions of the lift. A healthcarerelationship authority of no authority provides no authority of thehuman to exercise or command any function of the lift.

FIG. 15 is a flowchart of a method 1500 to control a device-controllerof an automatic door, according to an implementation. One example of thedevice-controller of an automatic door is life device-controller 1816 inFIG. 18.

Method 1500 includes receiving from a voice-recognition unit, a commandassociated with an automatic door, at block 1502. Method 1500 alsoincludes configuring a port to perform the command, at block 1504. Theport is associated with the command. The mere configuring the portcauses the automatic door to perform the command. Methods 1600 and 1700describe more specific implementations of method 1500.

FIG. 16 is a flowchart of a method 1600 to control a device-controllerof an automatic door, according to an implementation. Method 1600 is oneimplementation of method 1500.

Method 1600 includes receiving from a voice-recognition unit, a commandassociated with an automatic door, at block 1502. Method 1600 alsoincludes determining or identifying which port of the device-controllerof the automatic door is associated with the command, at block 1602. Insome implementations, the association between the port of thedevice-controller of the automatic door and the command is a directcorrespondence.

Method 1600 also includes configuring the identified port in order toperform the command, at block 1604. Various techniques of configuringthe port using relays are described in methods 1700 and 1800.

Some implementations of method 1600 also include overriding theconfiguration of the port in response to a command received from atactile input device, such as a hand-held controller, or an input deviceother than a microphone and voice-recognition unit. The configuration ofthe port is overridden to provide higher priority to the other inputdevice, which is helpful in some situations where the command from theother input device is considered to be more reliable and/or accurate orwhere the command from the other input device is designated for anyreason or even arbitrarily as being the input device with the highestpriority.

FIG. 17 is a flowchart of a method 1700 to control a device-controllerof an automatic door, according to an implementation. Method 1700 is oneimplementation of method 1500.

Method 1700 includes receiving from a voice-recognition unit, amovement-command associated with an automatic door, at block 1502. Themovement command can be in anyone of a number of electronic formats,such as a transient signal, a text-encoded binary representation, and/ora numerical representation encoded in binary.

In regards to the movement-command, in some implementations in which theactuated-door provides electrically or hydraulically actuated movementto only open and close such as shown in FIG. 33, the movement-command isone of two different commands, “open” and “close”. In someimplementations in which the actuated-door provides electrically orhydraulically actuated movement to open, close, lock and unlock, such asin FIG. 32, the movement-command is one of four different commands,“lock” “unlock” “close” and “open”. In some implementations in which theactuated-door provides electrically or hydraulically actuated movementto open, close, lock and unlock and includes safety commands, themovement-command is one of seven different commands, “lock” “unlock”“close” “open” “halt” “stop” and “help”.

Further in regard to the movement-command, in some implementations inwhich the actuated-door has a safety halt feature and that provideselectrically or hydraulically actuated movement open and close such asshown in FIG. 33, the movement-command is one of five differentcommands, “open” “close” “stop” halt” and “help”. The “stop” halt” and“help” commands are cessation-commands that can be enunciated by anoperator to end movement of the actuated-door. In some implementationsin which the actuated-door has a safety halt feature and that provideselectrically or hydraulically actuated movement to open, close, lock andunlock such as shown in FIG. 32, the movement-command is one of eightdifferent commands, “lock” “unlock” “close” “open” “stop” halt” and“help”. In some implementations in which the actuated-door has a safetyhalt feature and that provides electrically or hydraulically actuatedmovement in three dimensions (throughout a volume), the movement-commandis one of nine different commands, “lock” “unlock” “close” “open” “in”“out” “stop” halt” and “help”.

Method 1700 also includes identifying or determining which relay of aplurality of relays is associated with the movement-command, at block1702. The number of relays is equal to the number of movement-commandsthat are not “halt” or “stop”. One relay for each direction of movement.For example, where the movement-commands are “lock” “unlock” “close” and“open” the number of relays is four. In another example, where themovement-commands are “lock” “unlock” “close” “open” “in” and “out” thenumber of relays is six.

In some implementations, each of the plurality of relays is asingle-pole-single-throw relay. In other implementations, each of theplurality of relays is a double-pole-double-throw (DPDT) relay. In otherimplementations, some of the plurality of relays is asingle-pole-single-throw relay and some of the plurality of relays is aDPDT relay.

Method 1700 also includes actuating the identified relay, at block 1704.Actuating the identified relay causes a circuit to be completed orclosed, in which the completed/closed circuit being associated with themovement-command. Completion/closing of the circuit that is associatedwith the direction of movement of the automatic door that is the same asthe movement-command actuates the automatic door in accordance with themovement-command.

A normally open (NO) relay is implemented in situations where movementis actuated by completing a circuit, such as described at block 1704.However, in other implementations where movement is actuated by openingor breaking a circuit, a normally-closed (NC) relay is used.

Some implementations of method 1700 also include override the completedcircuit in response to a command received from a tactile input device,such as a hand-held controller, or an input device other than amicrophone and voice-recognition unit, at block 1706. One implementationof overriding the completed circuit is opening the circuit. Thecompleted circuit is overridden to provide higher priority to the otherinput

device, which is helpful in some situations where the command from theother input device is considered to be more reliable and/or accurate orthe command from the other input device is designated rather arbitrarilyas being the input device with the highest priority.

FIG. 18 is a flowchart of a method 1800 to control a device-controllerof an automatic door, according to an implementation. Method 1800 is oneimplementation of method 1700.

In method 1800, after the movement-command is received from thevoice-recognition engine, the movement-command is tested to determine orevaluate if the movement-command is a cessation-command, at block 1802.Examples of cessation-command include “stop” “halt” and “help”. If themovement-command is a cessation-command, then in some implementations,all relays are deactivated (e.g. normally-open relays are opened) atblock 1804. In other, implementations, if the movement-command is acessation-command, then only the actuated (active) relay(s) aredeactivated. If the movement-command is not a cessation-command, thenthe method proceeds with the next action of identifying or determiningwhich relay of a plurality of relays is associated with themovement-command, at block 1702, and continuing thereafter.

FIG. 19 is a flowchart of a method 1900 of detecting, evaluating andresponding to an obstacle in the path of an automatic door whileopening, according to an implementation.

In method 1900, an “open” command is received at block 1902. In responseto the receipt of an “open” command at block 1902, an obstacle detectionprocess is initiated and is performed continuously in someimplementation or is performed intermittently in some implementationswhile the door is being opened at block 1904, until an obstacle isdetected at block 1906. In response to an obstacle being detected atblock 1906, an obstacle warning parameter is evaluated at 1908. In someimplementations in which the obstacle warning parameter is a Booleanobject, if the obstacle warning parameter is set to NO or 0, the openingof the door is halted at block 1910 and if the obstacle warningparameter is set to YES or 1, a warning counter is initialized at block1912. The warning counter is set to the maximum number of iterations ofa warning.

In response to the warning counter being initialized at block 1912, aloop is entered which is performed at maximum the number of timesindicated by the warning counter in which an obstacle warning isprovided at block 1914, and a response is polled at blocks 1916 and 1918and if no response is received then a predetermined default action isperformed at block 1924 otherwise a command in accordance with theresponse is performed by the automatic door controller at block 1920.

In response to the warning counter being initialized at block 1912, thewarning counter is decremented by 1 at block 1913, an obstacle warningis provided at block 1914 and a timer is started at block 1916. Anexample of an obstacle warning is “An obstacle has been detected. Do youwant to Stop, Open or Close the door?” If a response to the obstaclewarning is received within the time limit at block 1918, in someimplementations, a command in accordance with the response is performedby the automatic door controller at block 1920. In some implementationsthe only recognized responses are “stop” “open” and “close”. Theresponse can be provided in a number of manners, such as speechrecognition or receiving a signal from a hand held controller. In someimplementations in which security of the facilities in which the door islocated is an issue, the response to the obstacle warning is performedin accordance with either method 300 or method 400 in which the responseis evaluated for authority of the operator from which the responseoriginated and the response is performed in accordance with theauthority of the operator from which the response originated. If aresponse to the obstacle warning is not received within the time limitat block 1918, the warning counter is evaluated in comparison to zero.If the warning counter is zero, the predetermined default action isperformed at block 1924. If the warning counter is not zero, the method1900 continues with decrementing the warning counter by 1 at block 1913.

In summary of a particular implementation of method 1900, when anobstacle is detected at block 1906 in the path of an opening door, ifthe obstacle warning parameter is determined to be set to true at block1908, an obstacle warning is announced at block 1914. An example of anobstacle warning is “An obstacle has been detected. Do you want to Stop,Open or Close the door?”. After a specified period of time if a responseis not detected at block 1918, the announcement is repeated at block1914. After the second specified period of time if a response is notdetected at block 1918, default action is repeated at block 1924, whichcan be stop (halt) the door movement, open the door or close the door.

Method 1900 provides a manner of opening a door that reduces physicaldanger and in some situations provides an added aspect of security.

FIG. 20 is a flowchart of a method 2000 of detecting, evaluating andresponding to an obstacle in the path of an automatic door whileopening, according to an implementation.

In method 2000, an “open” command is received at block 1902. In responseto the receipt of an “open” command at block 1902, an obstacle warningparameter is evaluated at 1908. In some implementations in which theobstacle warning parameter is a Boolean object, if the obstacle warningparameter is set to NO or 0, the door is opened at block 2002 and if theobstacle warning parameter is set to YES or 1, an obstacle detectionprocess is initiated and is performed continuously in someimplementation or is performed intermittently in some implementationswhile the door is being opened at block 1904, until an obstacle isdetected at block 1906. In response to an obstacle being detected atblock 1906, a warning counter is initialized at block 1912. The warningcounter is set to the maximum number of iterations of a warning.

In method 2000, in response to the warning counter being initialized atblock 1912, a loop is entered which is performed at maximum the numberof times indicated by the warning counter in which an obstacle warningis provided at block 1914, and a response is polled at blocks 1916 and1918 and if no response is received then a predetermined default actionis performed at block 1924 otherwise a command in accordance with theresponse is performed by the automatic door controller at block 1920.

In method 2000, in response to the warning counter being initialized atblock 1912, the warning counter is decremented by 1 at block 1913, anobstacle warning is provided at block 1914 and a timer is started atblock 1916. An example of an obstacle warning is “An obstacle has beendetected. Do you want to Stop, Open or Close the door?” If a response tothe obstacle warning is received within the time limit at block 1918, insome implementations, a command in accordance with the response isperformed by the automatic door controller at block 1920. In someimplementations the only recognized responses are “stop” “open” and“close”. The response can be provided in a number of manners, such asspeech recognition or receiving a signal from a hand held controller. Insome implementations in which security of the facilities in which thedoor is located is an issue, the response to the obstacle warning isperformed in accordance with either method 300 or method 400 in whichthe response is evaluated for authority of the operator from which theresponse originated and the response is performed in accordance with theauthority of the operator from which the response originated. If aresponse to the obstacle warning is not received within the time limitat block 1918, the warning counter is evaluated in comparison to zero.If the warning counter is zero, the predetermined default action isperformed at block 1924. If the warning counter is not zero, the method2000 continues with decrementing the warning counter by 1 at block 1913.

In summary of a particular implementation of method 2000, if theobstacle warning parameter is determined to be set to true at block1908, when an obstacle is detected at block 1906 in the path of anopening door, an obstacle warning is announced at block 1914. An exampleof an obstacle warning is “An obstacle has been detected. Do you want toStop, Open or Close the door?”. After a specified period of time if aresponse is not detected at block 1918, the announcement is repeated atblock 1914. After the second specified period of time if a response isnot detected at block 1918, default action is repeated at block 1924,which can be stop (halt) the door movement, open the door or close thedoor.

Method 2000 provides a manner of opening a door that reduces physicaldanger and in some situations provides an added aspect of security.

FIG. 21 is a flowchart of a method 2100 of detecting, evaluating andresponding to an obstacle in the path of an automatic door whileclosing, according to an implementation.

In method 2100, a “close” command is received at block 1902. In responseto the receipt of a “close” command at block 1902, an obstacle detectionprocess is initiated and is performed continuously in someimplementation or is performed intermittently in other implementationswhile the door is being closed at block 1904, until an obstacle isdetected at block 1906. In response to an obstacle being detected atblock 1906, an obstacle warning parameter is evaluated at 1908. In someimplementations in which the obstacle warning parameter is a Booleanobject, if the obstacle warning parameter is set to NO or 0, the closingof the door is halted at block 1910 and if the obstacle warningparameter is set to YES or 1, a warning counter is initialized at block1912. The warning counter is set to the maximum number of iterations ofa warning.

In method 2100, in response to the warning counter being initialized atblock 1912, a loop is entered which is performed at maximum the numberof times indicated by the warning counter in which an obstacle warningis provided at block 1914, and a response is polled at blocks 1916 and1918 and if no response is received then a predetermined default actionis performed at block 1924 otherwise a command in accordance with theresponse is performed by the automatic door controller 114 at block1920.

In method 2100, in response to the warning counter being initialized atblock 1912, the warning counter is decremented by 1 at block 1913, anobstacle warning is provided at block 1914 and a timer is started atblock 1916. An example of an obstacle warning is “An obstacle has beendetected. Do you want to Stop, Open or Close the door?” If a response tothe obstacle warning is received within the time limit at block 1918, insome implementations, a command in accordance with the response isperformed by the automatic door controller 114 at block 1920. In someimplementations the only recognized responses are “stop” “open” and“close”. The response can be provided in a number of manners, such asspeech recognition or receiving a signal from a hand held controller. Insome implementations in which security of the facilities in which thedoor is located is an issue, the response to the obstacle warning isperformed in accordance with either method 300 or method 400 in whichthe response is evaluated for authority of the operator from which theresponse originated and the response is performed in accordance with theauthority of the operator from which the response originated. If aresponse to the obstacle warning is not received within the time limitat block 1918, the warning counter is evaluated in comparison to zero.If the warning counter is zero, the predetermined default action isperformed at block 1924. If the warning counter is not zero, the method2100 continues with decrementing the warning counter by 1 at block 1913.

In summary of a particular implementation of method 2100, when anobstacle is detected at block 1906 in the path of a closing door, if theobstacle warning parameter is determined to be set to true at block1908, an obstacle warning is announced at block 1914. An example of anobstacle warning is “An obstacle has been detected. Do you want to Stop,Open or Close the door?”. After a specified period of time if a responseis not detected at block 1918, the announcement is repeated at block1914. After the second specified period of time if a response is notdetected at block 1918, default action is repeated at block 1924, whichcan be stop (halt) the door movement, open the door or close the door.

Method 2100 provides a manner of closing a door that reduces physicaldanger and in some situation provides an added aspect of security.

FIG. 22 is a flowchart of a method 2200 of detecting, evaluating andresponding to an obstacle in the path of an automatic door whileclosing, according to an implementation.

In method 2200, a “close” command is received at block 2102. In responseto the receipt of the “close” command at block 2102, an obstacle warningparameter is evaluated at 1908. In some implementations in which theobstacle warning parameter is a Boolean object, if the obstacle warningparameter is set to NO or 0, the door is closed at block 2002 and if theobstacle warning parameter is set to YES or 1, an obstacle detectionprocess is initiated and is performed continuously in someimplementation or is performed intermittently in some implementationswhile the door is being closed at block 1904, until an obstacle isdetected at block 1906. In response to an obstacle being detected atblock 1906, a warning counter is initialized at block 1912. The warningcounter is set to the maximum number of iterations of a warning.

In method 2200, in response to the warning counter being initialized atblock 1912, a loop is entered which is performed at maximum the numberof times indicated by the warning counter in which an obstacle warningis provided at block 1914, and a response is polled at blocks 1916 and1918 and if no response is received then a predetermined default actionis performed at block 1924 otherwise a command in accordance with theresponse is performed by the automatic door controller 114 at block1920.

In method 2200, in response to the warning counter being initialized atblock 1912, the warning counter is decremented by 1 at block 1913, anobstacle warning is provided at block 1914 and a timer is started atblock 1916. An example of an obstacle warning is “An obstacle has beendetected. Do you want to Stop, Open or Close the door?” If a response tothe obstacle warning is received within the time limit at block 1918, insome implementations, a command in accordance with the response isperformed by the automatic door controller 114 at block 1920. In someimplementations the only recognized responses are “stop” “open” and“close”. The response can be provided in a number of manners, such asspeech recognition or receiving a signal from a hand held controller. Insome implementations in which security of the facilities in which thedoor is located is an issue, the response to the obstacle warning isperformed in accordance with either method 300 or method 400 in whichthe response is evaluated for authority of the operator from which theresponse originated and the response is performed in accordance with theauthority of the operator from which the response originated. If aresponse to the obstacle warning is not received within the time limitat block 1918, the warning counter is evaluated in comparison to zero.If the warning counter is zero, the predetermined default action isperformed at block 1924. If the warning counter is not zero, the method2200 continues with decrementing the warning counter by 1 at block 1913.

In summary of a particular implementation of method 2200, if theobstacle warning parameter is determined to be set to true at block1908, when an obstacle is detected at block 1906 in the path of aclosing door, an obstacle warning is announced at block 1914. An exampleof an obstacle warning is “An obstacle has been detected. Do you want toStop, Open or Close the door?”. After a specified period of time if aresponse is not detected at block 1918, the announcement is repeated atblock 1914. After the second specified period of time if a response isnot detected at block 1918, default action is repeated at block 1924,which can be stop (halt) the door movement, open the door or close thedoor.

Method 2200 provides a manner of closing a door that reduces physicaldanger and in some situations provides an added aspect of security.

FIG. 23 is a flowchart of a method 2300 of detecting, evaluating andresponding to a person on the interior side of an exterior door,according to an implementation.

In method 2300, a presence of a person is detected on the interior sideof an exterior door, at block 2302. The detecting can be performed usingconventional motion or object detection processes. In response todetecting the presence of a person on the interior side of an exteriordoor, at block 2302, a door-opening-query parameter is evaluated at2304. In some implementations in which the door-opening-query parameteris a Boolean object, if the door-opening-query parameter is set to NO or0, a predetermined default action is performed at block 1924 and if thedoor-opening-query parameter is set to YES or 1, a query counter isinitialized at block 2306. The predetermined default action can be stop(halt) the door movement, open the door, lock the door, unlock the dooror close the door. In some implementations, the predetermined defaultaction is dependent upon an identity of the person. In response to anobstacle being detected at block 1906, a query counter is initialized atblock 1912. The query counter is set to the maximum number of iterationsof a warning.

In method 2300, in response to the query counter being initialized atblock 2306, a loop is entered which is performed at maximum the numberof times indicated by the query counter in which an door-opening-queryis provided at block 2310, and a response is polled at blocks 1916 and1918 and if no response is received then a predetermined default actionis performed at block 1924 otherwise an operation in accordance with theresponse is performed by the door at block 2314.

In method 2300, in response to the query counter being initialized atblock 1912, the query counter is decremented by 1 at block 2308, adoor-opening-query is provided at block 2310 and a timer is started atblock 1916. An example of the door-opening-query is “A person is at thefront door. Do you want to open the door?” If a response to thedoor-opening-query is received within the time limit at block 1918, insome implementations, an operation in accordance with the response isperformed by the door at block 2314. For example of block 2314, if theresponse is “YES” to a query of “A person is at the front door. Do youwant to open the door?” then the door is instructed to perform an openoperation.

In some implementations the only recognized responses are “YES”, “OPEN”,OR “NO”. In some implementations the only recognized responses are“YES”, “OPEN”, “LOCK THE DOOR” OR “NO”. The response can be provided ina number of manners, such as speech recognition or receiving a signalfrom a hand held controller. In some implementations in which securityof the facilities in which the door is located is an issue, the responseto the door-opening-query is performed in accordance with either method300 or method 400 in which the response is evaluated for authority ofthe operator from which the response originated and the response isperformed in accordance with the authority of the operator from whichthe response originated. If a response to the door-opening-query is notreceived within the time limit at block 1918, the query counter isevaluated in comparison to zero. If the query counter is zero, thepredetermined default action is performed at block 1924. If the querycounter is not zero, the method 2300 continues with decrementing thequery counter by 1 at block 2308.

In summary of a particular implementation of method 2300, when a personis detected on the interior side of an exterior door, at block 2302, ifthe door opening query parameter is determined to be set to true atblock 2304, an opening query is announced at block 2310. An example ofan opening query is “A person is at the front door. Do you want to openthe door?”. After a specified period of time if a response is notdetected at block 1918, the opening query is repeated at block 1914.After the second specified period of time if a response is not detectedat block 1918, default action is repeated at block 1924, which can bestop (halt) the door movement, open the door, lock the door, unlock thedoor or close the door.

Method 2300 provides a manner of controlling a door that reducesphysical danger and in some situations provides an added aspect ofsecurity.

FIG. 24 is a flowchart of a method 2400 of detecting, evaluating andresponding to a person on the exterior side of an exterior door,according to an implementation.

In method 2400, a presence of a person is detected on the exterior sideof an exterior door, at block 2302. The detecting can be performed usingconventional motion or object detection processes. In response todetecting the presence of a person on the exterior side of an exteriordoor, at block 2302, a door-opening-query parameter is evaluated at2304. In some implementations in which the door-opening-query parameteris a Boolean object, if the door-opening-query parameter is set to NO or0, a predetermined default action is performed at block 1924 and if thedoor-opening-query parameter is set to YES or 1, a query counter isinitialized at block 2306. The predetermined default action can be stop(halt) the door movement, open the door, lock the door, unlock the dooror close the door. In some implementations, the predetermined defaultaction is dependent upon an identity of the person. In response to anobstacle being detected at block 1906, a query counter is initialized atblock 1912. The query counter is set to the maximum number of iterationsof a warning.

In method 2400, in response to the query counter being initialized atblock 2306, a loop is entered which is performed at maximum the numberof times indicated by the query counter in which an door-opening-queryis provided at block 2310, and a response is polled at blocks 1916 and1918 and if no response is received then a predetermined default actionis performed at block 1924 otherwise a command in accordance with theresponse is performed by the automatic door controller 114 at block1920.

In method 2300, in response to the query counter being initialized atblock 1912, the query counter is decremented by 1 at block 2308, adoor-opening-query is provided at block 2310 and a timer is started atblock 1916. An example of the door-opening-query is “A person is at thefront door. Do you want to open the door?” If a response to thedoor-opening-query is received within the time limit at block 1918, insome implementations, an operation in accordance with the response isperformed by the door at block 2314. For example of block 2314, if theresponse is “YES” to a query of “A person is at the front door. Do youwant to open the door?” then the door is instructed to perform an openoperation.

In some implementations the only recognized responses are YES″, “OPEN”,OR “NO”. The response can be provided in a number of manners, such asspeech recognition or receiving a signal from a hand held controller. Insome implementations in which security of the facilities in which thedoor is located is an issue, the response to the door-opening-query isperformed in accordance with either method 300 or method 400 in whichthe response is evaluated for authority of the operator from which theresponse originated and the response is performed in accordance with theauthority of the operator from which the response originated. If aresponse to the door-opening-query is not received within the time limitat block 1918, the query counter is evaluated in comparison to zero. Ifthe query counter is zero, the predetermined default action is performedat block 1924. If the query counter is not zero, the method 2400continues with decrementing the query counter by 1 at block 2308.

In summary of a particular implementation of method 2400, when a personis detected on the exterior side of an exterior door, at block 2302, ifthe door opening query parameter is determined to be set to true atblock 2304, an opening query is announced at block 2310. An example ofan opening query is “A person is at the front door. Do you want to openthe door?”. After a specified period of time if a response is notdetected at block 1918, the opening query is repeated at block 1914.After the second specified period of time if a response is not detectedat block 1918, default action is repeated at block 1924, which can bestop (halt) the door movement, open the door, lock the door, unlock thedoor or close the door.

Method 2400 provides a manner of controlling a door that reducesphysical danger and in some situations provides an added aspect ofsecurity.

Hardware and Operating Environment

FIG. 25 is a block diagram of a voice-recognition engine 2500, accordingto an implementation. The voice-recognition engine 2500 includes afrontend component 2502 parameterizes an input signal (e.g., audio) intoa sequence of output features 2504. The frontend component 2502 includesone or more parallel chains of replaceable communicating signalprocessing modules called data-processors (not shown). Supportingmultiple chains of data-processors of the front-end 2502 permitssimultaneous computation of different types of parameters from the sameor different input signals. The simultaneous computation enablessimultaneous decoding using different parameter types, and evenparameter types derived from non-speech signals such as video.

Each data-processor in the frontend component 2502 provides an input andan output that can be connected to another data-processor of thefront-end 2502, permitting arbitrarily long sequences of chains ofdata-processors. The inputs and outputs of each data-processor of thefront-end 2502 are generic data objects that encapsulate processed inputdata as well as markers that indicate data classification events such asend-point detection. The last data-processor of the front-end 2502 ineach chain produces a data object composed of parameterized signals(e.g. features 2504) to be used by a decoder component 2506.

The voice-recognition engine 2500 produces parallel sequences offeatures 2502. The voice-recognition engine 2500 allows for an arbitrarynumber of parallel streams.

Communication between blocks follows a pull design. With a pull design,a data-processor of the front-end 2502 requests input from an earliermodule only when needed, as opposed to the more conventional pushdesign, where a module propagates its output to the succeeding module assoon as the output is generated. This pull design enables the processorsto perform buffering, allowing operators to look forwards or backwardsin time.

The ability to look forwards or backwards in time not only permits thedecoder component 2506 to perform frame-synchronous Viterbi searches,but also allows the decoder component 2506 to perform other types ofsearches such as depth-first and A*.

Within the generic frontend component 2502 framework, thevoice-recognition engine 2500 provides a suite of data-processors of thefront-end 2502 that implement conventional signal processing techniques.These implementations include support for the following: reading from avariety of input formats for batch mode operation, reading from thesystem audio input device for live mode operation, preemphasis,windowing with a raised cosine transform (e.g., Hamming and Hanningwindows), discrete fourier transform (FFT), mel frequency filtering,bark frequency warping, discrete cosine transform (DCT), linearpredictive encoding (LPC), end pointing, cepstral mean normalization(CMN), mel-cepstra frequency coefficient extraction (MFCC), andperceptual linear prediction coefficient extraction (PLP).

The voice-recognition engine 2500 includes a search-manager component2508 generates active-lists 2510 from currently active tokens in thesearch trellis by pruning using a pluggable pruner component 2512. Apruner component 2512 can perform relative and/or absolute beam pruning.The implementation of the pruner component 2512 is greatly simplified bythe garbage collector of a Java platform. With garbage collection, thepruner component 2512 prunes a complete path by merely removing theterminal token of the path from the activelist 2510. The act of removingthe terminal token identifies the token and any unshared tokens for thatpath as unused, allowing the garbage collector to reclaim the associatedmemory.

The search-manager component 2508 sub-framework also includes a scorercomponent 2514, a pluggable state probability estimation module thatprovides state output density values on demand. When the Search-managercomponent 2508 requests a score for a given state at a given time, thescorer component 2514 accesses the feature vector for that time andperforms the mathematical operations to compute the score. In the caseof parallel decoding using parallel acoustic models, the scorercomponent 2514 matches the acoustic model set to be used against thefeature type.

The scorer component 2514 retains all information pertaining to thestate output densities. Thus, the search-manager component 2508 need notstore data indicating whether the scoring is done with continuous,semi-continuous or discrete hidden Markov models (HMMs). Furthermore,the probability density function of each HMM state is isolated in thesame fashion. Any heuristic algorithms incorporated into the scoringprocedure for speeding the scorer component 2514 can also be performedlocally within the scorer component 2514. In addition, the scorercomponent 2514 can take advantage of multiple processors if they areavailable.

The voice-recognition engine 2500 includes a linguist component 2516generates a search-graph 2518 that is used by the decoder component 2506during the search, while at the same time hiding the complexitiesinvolved in generating a graph. The linguist component 2516 is apluggable module, allowing people to dynamically configure the systemwith different linguist components 2516.

A typical linguist component 2516 constructs the search-graph 2518 usingthe language structure as represented by a given language-model 2520 andthe topological structure of the acoustic-model 2524 (HMMs for the basicsound units used by the system). The linguist component 2516 may alsouse a dictionary 2522 (typically a pronunciation lexicon) to map wordsfrom the language-model 2520 into sequences of acoustic-model 2524elements. When generating the search-graph 2518, the linguist component2516 may also incorporate sub-word units with contexts of arbitrarylength.

The graph is a directed graph in which each node, called a search state,represents either an emitting or a non-emitting state. Emitting statescan be scored against incoming acoustic features while non-emittingstates are generally used to represent higher-level linguisticconstructs such as words and phonemes that are not directly scoredagainst the incoming features 2502. The arcs between states representthe possible state transitions, each of which has a probabilityrepresenting the likelihood of transitioning along the arc.

By allowing different implementations of the linguist component 2516 tobe plugged in at runtime, the voice-recognition engine 2500 permitsindividuals to provide different configurations for different system andrecognition requirements. For instance, a simple numerical digitsrecognition application might use a simple linguist component 2516 thatkeeps the search space entirely in memory. On the other hand, adictation application with a 100K word vocabulary might use asophisticated linguist component 2516 that keeps only a small portion ofthe potential search space in memory at a time.

The linguist component 2516 itself includes of three pluggablecomponents: a language-model 2520, a dictionary 2522, and anacoustic-model 2524, which are described in the following sections.

The language-model 2520 module of the linguist component 2516 providesword-level language structure, which can be represented by any number ofpluggable implementations. These implementations typically fall into oneof two categories: graph-driven grammars and stochastic N-Gram models.The graph-driven grammar represents a directed word graph where eachnode represents a single word and each arc represents the probability ofa word transition taking place. The stochastic N-Gram models provideprobabilities for words given the observation of the previous n-1 words.

The dictionary 2522 provides pronunciations for words found in thelanguage-model 2520. The pronunciations break words into sequences ofsub-word units found in the acoustic-model 2524. The dictionary 2522interface also supports the classification of words and allows for asingle word to be in multiple classes. The various implementationsoptimize for usage patterns based on the size of the active vocabulary.For example, one implementation will load the entire vocabulary atsystem initialization time, whereas another implementation will onlyobtain pronunciations on demand.

The acoustic-model 2524 module provides a mapping between a unit ofspeech and an HMM that can be scored against incoming features 2502provided by the frontend component 2502. As with other systems, themapping may also take contextual and word position information intoaccount. For example, in the case of triphones, the context representsthe single phonemes to the left and right of the given phoneme, and theword position represents whether the triphone is at the beginning,middle, or end of a word (or is a word itself). The contextualdefinition is not fixed by the voice-recognition engine 2500, allowingfor the definition of the acoustic-model 2524 that contain allophones aswell as the acoustic-model 2524 whose contexts do not need to beadjacent to the unit.

Typically, the linguist component 2516 breaks each word in the activevocabulary into a sequence of context-dependent sub-word units. Thelinguist component 2516 then passes the units and their contexts to theacoustic-model 2524, retrieving the HMM graphs associated with thoseunits. The linguist component 2516 then uses these HMM graphs inconjunction with the language-model 2520 construct the search-graph2518.

The HMM is a directed graph of objects. In this graph, each nodecorresponds to an HMM state and each arc represents the probability oftransitioning from one state to another in the HMM. By representing theHMM as a directed graph of objects instead of a fixed structure, animplementation of the acoustic-model 2524 can easily supply HMMs withdifferent topologies. For example, the acoustic-model 2524 interfaces donot restrict the HMMs in terms of the number of states, the number ortransitions out of any state, or the direction of a transition (forwardor backward). Furthermore, the voice-recognition engine 2500 allows thenumber of states in an HMM to vary from one unit to another in the sameacoustic-model 2524.

Each HMM state is capable of producing a score from an observed feature.The actual code for computing the score is done by the HMM state itself,thus hiding its implementation from the rest of the system, evenpermitting differing probability density functions to be used per HMMstate. The acoustic-model 2524 also allows sharing of various componentsat all levels. That is, the components that make up a particular HMMstate such as Gaussian mixtures, transition matrices, and mixtureweights can be shared by any of the HMM states to a very fine degree.

Individuals can configure the voice-recognition engine 2500 withdifferent implementations of the acoustic-model 2524 based upon theirneeds. The voice-recognition engine 2500 provides a singleacoustic-model 2524 implementation that is capable of loading and usingacoustic models.

Even though the linguist component 2516 may be implemented in verydifferent ways and the topologies of the search spaces generated bythese, the linguist component 2516 can vary greatly, the search spacesare all represented as a search-graph 2518. The search-graph 2518 is theprimary data structure used during the decoding process.

FIG. 26 is a block diagram of a voice-recognition apparatus 2600 tocontrol an actuated-door, according to an implementation. Thevoice-recognition apparatus 2600 is one implementation ofvoice-recognition unit 604 in FIG. 6. The voice-recognition apparatus2600 receives input from any one of a number of input mediums, such asaudio, and therefrom controls an actuated-door. The voice-recognitionapparatus 2600 can fit inside the housing of conventional actuated-doorand can communicate with and control conventional actuated-door usingthe conventional existing electrical circuitry of actuated-door. Thevoice-recognition apparatus 2600 helps improve control of theactuated-door by receiving input from any one of a number of inputmediums, such as audio. In the example of audio, the voice-recognitionapparatus 2600 improves the ease and convenience with which an operatorcan control the actuated-door by providing a voice interface to theactuated-door. In general, the voice-recognition apparatus 2600 improvesthe ease and convenience with which an operator can control theactuated-door by providing a command interface to the actuated-doorother than a handheld control device, such as the handheld controldevice 3226 shown in FIG. 32.

Voice-recognition apparatus 2600 includes a microcontroller, processoror microprocessor 2602, such as a RSC 6502 microcontroller. The 6502 isan 8-bit processor with a 16-bit address bus. The internal logic runs atthe same speed as the external clock rate, and having clock speedstypically in the neighborhood of 1 or 2 MHz. The 6502 has a relativelysimplistic state machine implemented by combinatorial (clockless) logic.A two phase clock (supplying two synchronizations per cycle) can therebycontrol the whole machine-cycle directly. The 6502 microcontroller isnot sequenced by a microcode read-only-memory but uses a programmablelogic array for instruction decoding and sequencing. Like most typicaleight-bit microprocessors, the 6502 microcontroller does some limitedoverlapping of fetching and execution. The low clock frequency moderatesthe speed requirement of memory and peripherals attached to the 6502microcontroller, as only about 50% of the clock cycle is available formemory access (due to the asynchronous design, this percentage variesstrongly among chip versions). The 6502 microcontroller isminimalistically engineered and efficiently manufactured and thereforeinexpensive. Like its precursor, the Motorola 6800 (but unlike Intel8080 and similar microprocessors) the 6502 microcontroller has very fewregisters. The registers of the 6502 microcontroller include one 8-bitaccumulator register (A), two 8-bit index registers (X and Y), an 8-bitprocessor status register (P), an 8-bit stack pointer (S), and a 16-bitprogram counter (PC). The subroutine call/scratchpad stack's addressspace is hardwired to memory page $01, i.e. the address range$0100-$01FF (256-511). Software access to the stack is performed viafour implied addressing mode instructions whose functions are to push orpop (pull) the accumulator or the processor status register. The samestack is also used for subroutine calls via the JSR (Jump to Subroutine)and RTS (Return from Subroutine) instructions, and for interrupthandling. The 6502 microcontroller uses the index and stack registerseffectively with several addressing modes, including a fast “directpage” or “zero page” mode, similar to that found on the PDP-8, thataccessed memory locations from address 0 to 255 with a single 8-bitaddress (saving the cycle normally required to fetch the high-order byteof the address) code for the 6502 use the zero page much as code forother processors would have used registers. Addressing modes alsoinclude implied (1 byte instructions); absolute (3 bytes); indexedabsolute (3 bytes); indexed zero-page (2 bytes); relative (2 bytes);accumulator (1); indirect,x and indirect,y (2); and immediate (2).Absolute mode is a general-purpose mode. Branch instructions use asigned 8-bit offset relative to the instruction after the branch; thenumerical range −128 . . . 127 therefore translates to 128 bytesbackward and 127 bytes forward from the instruction following the branch(which is 126 bytes backward and 129 bytes forward from the start of thebranch instruction). Accumulator mode uses the accumulator as aneffective address, and did not need any operand data. Immediate modeuses an 8-bit literal operand. The indirect modes are useful for arrayprocessing and other looping. With the 5/6 cycle “(indirect),y” mode,the 8-bit Y register is added to a 16-bit base address in zero page,located by a single byte following the opcode. As the resulting addresscould be anywhere in the 16-bit memory range, the Y register is a trueindex register, as opposed to the 6800, which had one 16-bit addressregister. Incrementing the index register to walk the array byte-wisetook only two additional cycles. With the less frequently used“(indirect,x)” mode the effective address for the operation is found atthe zero page address formed by adding the second byte of theinstruction to the contents of the X register. Using the indexed modes,the zero page effectively acted as a set of 128 additional (though veryslow) address registers. The 6502 also includes a set of binary codeddecimal (BCD) instructions, a feature normally implemented in software.Placing the CPU into BCD allowed numbers to be manipulated in base-10,with a set of conversion instructions to convert between base-10 andbinary (base-2). For instance, with the “D” flag set, 99+1 would resultin 00 and the carry flag being set. These instructions remove the needto convert numbers for display in the BASIC interpreter itself. However,this feature means other useful instructions can not be implementedeasily, and is sometimes removed to make room for custom instructions.The RSC 6502 microcontroller is merely one example of microcontroller,processor or microprocessor that can be used in the voice-recognitionapparatus 2600. The RSC 6502 microcontroller has been manufactured byConexant Systems at 4000 MacArthur Boulevard, Newport Beach, Calif.

The microcontroller, processor or microprocessor 2602 is operablycoupled to a voice-recognition apparatus 2600 includes at least oneinput device, such as one of the devices shown in FIG. 5 including akeyboard, a synaptic reader, and/or a microphone 2604 such as shown inFIG. 26.

And some implementations, the microcontroller, processor ormicroprocessor 2602 is operably coupled to a program/run switch 2606that is set to indicate the mode that the microcontroller, processor ormicroprocessor 2602 is operating. When the microcontroller, processor ormicroprocessor 2602 is being programmed, the program/run switch 2606 isset to program. When the microcontroller, processor or microprocessor2602 is being run, the program/run switch 2606 is set to run.

The microcontroller, processor or microprocessor 2602 is operablycoupled to a power input 2606.

In some implementations, the microcontroller, processor ormicroprocessor 2602 is operably coupled to a memory 2610 that storesdata and programs. In some implementations, the microcontroller,processor or microprocessor 2602 is operably coupled to adigital-to-analog (DAC) converter that generates DAC output 2612. Insome implementations, the microcontroller, processor or microprocessor2602 is operably coupled to an audio speaker 2614.

In other implementations, the microcontroller, processor ormicroprocessor 2602 includes memory. In some implementations in whichthe microcontroller, processor or microprocessor 2602 includes memory, amicroprocessor/microcontroller/processor provides an economical wirelessvoice control and communications system. Themicroprocessor/microcontroller/processor incorporates voice recognition,infrared (IR) and radio frequency (RF) wireless protocols includingZigbee and Bluetooth wireless protocols with positional awareness and acomplex programmable logic device (CPLD) interface. Themicroprocessor/microcontroller/processor communicates with and controlsmulti-sensory controls for products from microwaves and washing machinesto spacecraft. The microprocessor/microcontroller/processors areselected from both 16-bit and 32-bit devices. Themicroprocessor/microcontroller/processor having 16-bit radio-frequency(RF) interfaces are well-suited for applications such as wirelesskeyboard/mouse, wireless voice-over-IP (VoIP), remote controls, wirelessgaming accessories, home and building automation applications such asalarm and security systems, automatic meter reading systems, activeradio-frequency identification (RFID) systems and other monitoring andcontrol systems. Microprocessor/microcontroller/processors having 32-bitword-length include high performance integrated peripherals designed forreal-time control applications. An optimized core of themicroprocessor/microcontroller/processor performs multiple complexcontrol algorithms at speeds necessary for demanding controlapplications. Integrated peripherals such as a 16-channel, 12-bitanalog-to-digital conversion (ADC) running at up to 12.5 megasamples persecond and high resolution pulse-width modulation (PWM) modules with 150picosecond resolution provide sufficient bandwidth for communicationwith analog devices. Further including the serial peripheral interface(SPI), universal asynchronous receiver/transmitter (UART), inter-IC(I2C), campus area network (CAN), and multi-channel buffered serial port(McBSP) communication peripherals provides device control on a singlemicroprocessor/microcontroller/processor. Applications includeappliances, alternating current/direct current (AC/DC), directcurrent/alternating (DC/AC) and direct current/direct current (DC/DC)digital power supplies, solar inverters, digital motor control, andpower line communication.

The microcontroller, processor or microprocessor 2602 is operablycoupled to a lift device-controller 2616 that can perform action 1504 inFIG. 15, actions 1602, 1604 and 1606 in FIG. 16, actions 1702, 1704 and1706 in FIG. 17 and action 1802 in FIG. 18. The lift device-controller2616 is electrically coupled to at least one actuated-door 2618.Examples of the actuated-door 2618 include the automatic electricsliding door 3200 and the automatic electric swing door 3300 in FIG. 33.Device-controller 3400 in FIG. 34 is one implementation of the liftdevice-controller 2616 for a two dimensional automatic door, such as theautomatic electric sliding door 3200 in FIG. 32, that implements adouble-pole-double-throw (DPDT) relay for each direction of movement ofthe two dimensional automatic door.

In some implementations, the microcontroller, processor ormicroprocessor 2602 is operably coupled to a serial port 2620 throughwhich program instructions can be loaded onto the microcontroller,processor or microprocessor 2602.

In some implementations, the microcontroller, processor ormicroprocessor 2602 is operably coupled to a nonvolatile memory thatstores a voice-recognition engine, such as voice-recognition engine 2500in FIG. 25. In the implementation shown in FIG. 26, the nonvolatilememory is electrically erasable programmable read only memory (EEPROM)2622. The voice-recognition engine 2622 includes a predefined set offunctions that are called during voice-recognition operations.

FIG. 27 is an electrical schematic diagram of an electrical circuituseful in the implementation of the voice-recognition apparatus 2600 inFIG. 26, according to an implementation.

FIG. 28 is an electrical schematic diagram of an internal microphonecircuit 2800 for a voice actuated-door, according to an implementation.Microphone circuit 2800 is one implementation of the microphone 2604 inthe voice-recognition apparatus 2600 in FIG. 26. In microphone circuit2800, when J1 and J2 are jumped, an external microphone that is engagedin an external jack 2802 is used; when J1 and J2 are not jumped, aninternal microphone 2804 is used.

FIG. 29 is an electrical schematic diagram of a voice-recognitionapparatus 2900 to control an actuated-door, according to animplementation. The voice-recognition apparatus 2900 is oneimplementation of voice-recognition unit 604 in FIG. 6. Thevoice-recognition apparatus 2900 receives input from any one of a numberof input mediums, including audio, and therefrom controls anactuated-door. The voice-recognition apparatus 2900 can fit inside thehousing of conventional actuated-door and can communicate with andcontrol the conventional actuated-door using the conventional existingelectrical circuitry of actuated-door. The voice-recognition apparatus2900 helps improve control of the actuated-door by receiving input fromany one of a number of input mediums, including audio. In the example ofaudio, the voice-recognition apparatus 2900 improves the ease andconvenience with which an operator can control the actuated-door byproviding a voice interface to the actuated-door. In general, thevoice-recognition apparatus 2900 improves the ease and convenience withwhich an operator can control the actuated-door by providing a commandinterface to the actuated-door other than a handheld control device,such as the handheld control device 3226 shown in FIG. 32.

Voice-recognition apparatus 2900 includes a microcontroller, processoror microprocessor 2902, such as a RSC 6502 microcontroller. Themicrocontroller, processor or microprocessor 2902 includes non-volatilememory (not shown) such as Flash memory that can be electrically erasedand reprogrammed. The RSC 6502 microcontroller is merely one example ofa microcontroller, processor or microprocessor that can be used in thevoice-recognition apparatus 2900. The RSC 6502 microcontroller has beenmanufactured by Conexant Systems at 4000 MacArthur Boulevard, NewportBeach, Calif.

The microcontroller, processor or microprocessor 2902 is operablycoupled to at least one input device (not shown), such as one of thedevices shown in FIG. 5 including a keyboard, a synaptic reader, and/ora microphone. And some implementations, the microcontroller, processoror microprocessor 2902 is operably coupled to a program/run switch (notshown) that is set to indicate the mode that the microcontroller,processor or microprocessor 2902 is operating.

In some implementations, the microcontroller, processor ormicroprocessor 2902 is operably coupled to another memory (not shown)that stores data and programs. In some implementations, themicrocontroller, processor or microprocessor 2902 is operably coupled toa digital-to-analog (DAC) converter that generates DAC output (notshown). In some implementations, the microcontroller, processor ormicroprocessor 2902 is operably coupled to an audio speaker (not shown).

In some implementations, the microprocessor/microcontroller/processorincorporates infrared (IR) and radio frequency (RF) wireless protocolsincluding Zigbee and Bluetooth wireless protocols with positionalawareness and a complex programmable logic device (CPLD) interface. Themicroprocessor/microcontroller/processor communicates with and controlsmulti-sensory controls for products from microwaves and washing machinesto spacecraft. The microprocessor/microcontroller/processor is selectedfrom both 16-bit and 32-bit devices. Themicroprocessor/microcontroller/processor having 16-bit radio-frequency(RF) interfaces are well-suited for applications such as wirelesskeyboard/mouse, wireless voice-over-IP (VoIP), remote controls, wirelessgaming accessories, home and building automation applications such asalarm and security systems, automatic meter reading systems, activeradio-frequency identification (RFID) systems and other monitoring andcontrol systems. Microprocessor/microcontroller/processors having 32-bitword-length include high performance integrated peripherals designed forreal-time control applications. An optimized core of themicroprocessor/microcontroller/processor performs multiple complexcontrol algorithms at speeds necessary for demanding controlapplications. Integrated peripherals such as a 16-channel, 12-bitanalog-to-digital conversion (ADC) running at up to 12.5 megasamples persecond and high resolution pulse-width modulation (PWM) modules with 150picosecond resolution provide sufficient bandwidth for communicationwith analog devices. Further including the serial peripheral interface(SPI), universal asynchronous receiver/transmitter (UART), inter-IC(I2C), campus area network (CAN), and multi-channel buffered serial port(McBSP) communication peripherals provides device control on a singlemicroprocessor/microcontroller/processor. Applications includeappliances, alternating current/direct current (AC/DC), directcurrent/alternating (DC/AC) and direct current/direct current (DC/DC)digital power supplies, solar inverters, digital motor control, andpower line communication.

The microcontroller, processor or microprocessor 2902 is operablycoupled to a lift device-controller (not shown) that can perform action1504 in FIG. 15, actions 1602, 1604 and 1606 in FIG. 16, actions 1702,1704 and 1706 in FIG. 17 and action 1802 in FIG. 18. The liftdevice-controller is electrically coupled to at least one actuated-door(not shown). Examples of the actuated-door (not shown) include theautomatic electric sliding door 3200 in FIG. 32 and the automaticelectric swing door 3300 in FIG. 33. Device-controller 3400 in FIG. 34is one implementation of the lift device-controller 2916 for a twodimensional automatic door, such as the automatic electric sliding door3200 in FIG. 32, that implements a double-pole-double-throw (DPDT) relayfor each direction of movement of the two dimensional automatic door.

In some implementations, the microcontroller, processor ormicroprocessor 2902 is operably coupled to a serial port 2904 throughwhich program instructions can be loaded onto the microcontroller,processor or microprocessor 2902.

In some implementations, the microcontroller, processor ormicroprocessor 2902 is operably coupled to a nonvolatile memory thatstores a voice-recognition engine, such as voice-recognition engine 2500in FIG. 25. In the implementation shown in FIG. 29, the nonvolatilememory is electrically erasable programmable read only memory (EEPROM)2906. The voice-recognition engine 2906 includes a predefined set offunctions that are called during voice-recognition operations.

FIG. 30 is an electrical schematic diagram of a speaker circuit 3000 fora voice actuated-door, according to an implementation. Speaker circuit3000 is one implementation of the speaker 2614 in the voice-recognitionapparatus 2600 in FIG. 26. Speaker circuit 3000 include a microprocessor3002 that includes an amplifier and a digital-to-analog (D/A) converter.

FIG. 31 is a block diagram of a computer environment 3100 that controlsautomatic doors from audio voice commands, in accordance with animplementation. Implementations are described in terms of a computerexecuting computer-executable instructions. However, someimplementations can be implemented entirely in computer hardware inwhich the computer-executable instructions are implemented in read-onlymemory. Some implementations can also be implemented in client/servercomputing environments where remote devices that perform tasks arelinked through a communications network. Program modules can be locatedin both local and remote memory storage devices in a distributedcomputing environment.

The computer environment 3100 includes a computation resource 3102capable of implementing the processes described herein. It will beappreciated that other devices can alternatively used that include morecomponents, or fewer components, than those illustrated in FIG. 31.

The computer environment 3100 can function as one or more of the controlsegments, via implementation of the methods in FIGS. 9-18, respectively,as one or more computer program modules.

The illustrated operating environment 3100 is only one example of asuitable operating environment, and the example described with referenceto FIG. 31 is not intended to suggest any limitation as to the scope ofuse or functionality of the implementations of this disclosure. Otherwell-known computing systems, environments, and/or configurations can besuitable for implementation and/or application of the subject matterdisclosed herein.

The computation resource 3102 includes one or more processors orprocessing units 3104, a system memory 3106, and a bus 3108 that couplesvarious system components including the system memory 3106 toprocessor(s) 3104 and other elements in the environment 3100. The bus3108 represents one or more of any of several types of bus structures,including a memory bus or memory controller, a peripheral bus, anaccelerated graphics port and a processor or local bus using any of avariety of bus architectures, and can be compatible with SCSI (smallcomputer system interconnect), or other conventional bus architecturesand protocols.

In some implementations, the processor unit 3104 includes the variousapparatus and systems described in this application that provide controlof the automatic electric sliding door 3200 and the automatic electricswing door 3300 from various stimulus such as audio voice input.Examples of the various apparatus and systems that are included in theprocessor unit 3104 include the command interface unit 102, processor106 and/or device controller 110 in FIG. 1 and FIG. 2, the keyboard datareceiver 502, voice data receiver 504 and/or a synaptic data receiver506 in FIG. 5, and/or voice-recognition unit 604 in FIG. 6, the deviceconfiguration user interface 702 and/or the modifiable logic circuit 704in FIG. 7, the voice-recognition engine 2500 in FIG. 25, and othertangible systems that perform methods 900, 1000, 1100, 1200, 1300, 1400,1500, 1600, 1700 and/or 1800.

The system memory 3106 includes nonvolatile read-only memory (ROM) 3110and random access memory (RAM) 3112, which can or can not includevolatile memory elements. A basic input/output system (BIOS) 3114,containing the elementary routines that help to transfer informationbetween elements within computation resource 3102 and with externalitems, typically invoked into operating memory during start-up, isstored in ROM 3110.

The computation resource 3102 further can include a non-volatileread/write memory 3116, represented in FIG. 31 as a hard disk drive,coupled to bus 3108 via a data media interface 3117 (e.g., a SCSI, ATA,or other type of interface); a magnetic disk drive (not shown) forreading from, and/or writing to, a removable magnetic disk 3120 and anoptical disk drive (not shown) for reading from, and/or writing to, aremovable optical disk 3126 such as a CD, DVD, or other optical media.

The non-volatile read/write memory 3116 and associated computer-readablemedia provide nonvolatile storage of computer-readable instructions,data structures, program modules and other data for the computationresource 3102. Although the exemplary environment 3100 is describedherein as employing a non-volatile read/write memory 3116, a removablemagnetic disk 3120 and a removable optical disk 3126, it will beappreciated by those skilled in the art that other types ofcomputer-readable media which can store data that is accessible by acomputer, such as magnetic cassettes, FLASH memory cards, random accessmemories (RAMs), read only memories (ROM), and the like, can also beused in the exemplary operating environment.

A number of program modules can be stored via the non-volatileread/write memory 3116, magnetic disk 3120, optical disk 3126, ROM 3110,or RAM 3112, including an operating system 3130, one or more applicationprograms 3132, other program modules 3134 and program data 3136.Examples of computer operating systems conventionally employed includethe NUCLEUS® operating system, the LINUX® operating system, and others,for example, providing capability for supporting application programs3132 using, for example, code modules written in the C++® computerprogramming language.

A user can enter commands and information into computation resource 3102through input devices such as input media 3138 (e.g., keyboard/keypad,tactile input or pointing device, mouse, foot-operated switchingapparatus, joystick, touchscreen or touchpad, microphone, antenna etc.).Such input devices 3138 are coupled to the processing unit 3104 througha conventional input/output interface 3142 that is, in turn, coupled tothe system bus. A monitor 3150 or other type of display device is alsocoupled to the system bus 3108 via an interface, such as a video adapter3152.

The computation resource 3102 can include capability for operating in anetworked environment using logical connections to one or more remotecomputers, such as a remote computer 3160. The remote computer 3160 canbe a personal computer, a server, a router, a network PC, a peer deviceor other common network node, and typically includes many or all of theelements described above relative to the computation resource 3102. In anetworked environment, program modules depicted relative to thecomputation resource 3102, or portions thereof, can be stored in aremote memory storage device such as can be associated with the remotecomputer 3160. By way of example, remote application programs 3162reside on a memory device of the remote computer 3160. The logicalconnections represented in FIG. 31 can include interface capabilities,e.g., such as interface capabilities in FIG. 5, a storage area network(SAN, not illustrated in FIG. 31), local area network (LAN) 3172 and/ora wide area network (WAN) 3174, but can also include other networks.

Such networking environments are commonplace in modern computer systems,and in association with intranets and the Internet. In certainimplementations, the computation resource 3102 executes an Internet Webbrowser program (which can optionally be integrated into the operatingsystem 3130), such as the “Internet Explorer®” Web browser manufacturedand distributed by the Microsoft Corporation of Redmond, Wash.

When used in a LAN-coupled environment, the computation resource 3102communicates with or through the local area network 3172 via a networkinterface or adapter 3176. When used in a WAN-coupled environment, thecomputation resource 3102 typically includes interfaces, such as a modem3178, or other apparatus, for establishing communications with orthrough the WAN 3174, such as the Internet. The modem 3178, which can beinternal or external, is coupled to the system bus 3108 via a serialport interface.

In a networked environment, program modules depicted relative to thecomputation resource 3102, or portions thereof, can be stored in remotememory apparatus. It will be appreciated that the network connectionsshown are exemplary, and other means of establishing a communicationslink between various computer systems and elements can be used.

A user of a computer can operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 3160, which can be a personal computer, a server, a router, anetwork PC, a peer device or other common network node. Typically, aremote computer 3160 includes many or all of the elements describedabove relative to the computer 3100 of FIG. 31.

The computation resource 3102 typically includes at least some form ofcomputer-readable media. Computer-readable media can be any availablemedia that can be accessed by the computation resource 3102. By way ofexample, and not limitation, computer-readable media can comprisecomputer storage media and communication media.

FIG. 32 is a schematic perspective view of an automatic electric slidingdoor 3200, according to an implementation having two door panels. Twodoor panels 3202 and 3204 are suspended from a springer 3206 with an airrail on carriage by way of suspensions with rollers and ananti-derailer.

Door panels 3202 and 3204 are activated by way of a drive mechanism3208. This mechanism can be a cogged belt driven by a cogwheel on amotor with a transmission 3210 and an electromagnetic clutch. Drivemechanism 3208 is a continuous belt and is secured to the door panels3204 and 3206. The belt travels around a deflection disk 3212 at the endopposite the motor 3210. The automatic electric sliding door 3200 isoperated by way of corresponding control box 3215. At the bottom thedoor panels 3202 and 3204 move in floor-mounted guides 3218 and 3220,respectively.

The automatic electric sliding door 3200 also includes a power supply3222, a driving cogwheel 3224 and a door lock 3226. Elastic structure3228 extends around a deflection roller 3230.

In some implementations, the control box 3215 includes the variousapparatus and systems described in this application that provide controlof the automatic electric sliding door 3200 from various stimulus suchas audio voice input. Examples of the various apparatus and systems thatare included in the control box 3215 include the command interface unit102, processor 106 and/or device controller 110 in FIG. 1 and FIG. 2,the keyboard data receiver 502, voice data receiver 504 and/or asynaptic data receiver 506 in FIG. 5, the microphone 602 and orvoice-recognition unit 604 in FIG. 6, the device configuration userinterface 702 and/or the modifiable logic circuit 704 in FIG. 7, theelectrical devices in FIG. 26-31, and other tangible systems thatperform methods 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700,1800, 1900, 2000, 2100, 2200, 2300 and 2400.

The apparatus and methods described in FIG. 1-30 can be implemented in acontrol box of any type and variation of automatic electric slidingdoor. The automatic electric sliding door 3200 is shown as one exampleof automatic electric sliding door that can implement the apparatus andmethods of FIG. 1-30.

In some implementations, the automatic electric sliding door 3200includes a handheld control device (not shown) that is electricallycoupled to the control box 3215 a line (not shown), the handheld controldevice providing signals that directs movement of the line 3224 andmovement of the control box 3222 along the horizontal support 3210. Insome implementations, control initiated from the handheld control device3226 overrides control initiated from other input means.

Some implementations of the automatic electric sliding door 3200 includea charging unit (not shown) in the control box 3222 to provide power forrecharging a battery. The battery can be mounted in the control box3215. The charging unit is electrically coupled to a power cord havingmale prongs on the other end from the charging unit that are suitable toplug into a standard residential electrical wall outlet femalereceptacle.

FIG. 33 is a schematic perspective view of an automatic electric swingdoor 3300, according to an implementation having one hinged door panel.The automatic electric swing door 3300 includes a swing door 3302 withhinges on its left side and a frame 3304 accommodating the swing door3302. The automatic electric swing door 3300 also includes a door opener3306 attached to an upper portion of the frame 3304 by means of screws3308. The door opener 3306 has an arm 3310 that is pivotally connectedto its housing and having a roller 3312 at its free end. Alternatively,the swing door 3302 can contain a door closer motor 3314 and control box(not shown). When swung, the arm 3310 pushes the swing door 3302 throughthe strike plate 3316. Swing door 3302 also has a handle 3318. Theautomatic electric swing door 3300 also includes a sensor 3320 attachedto the wall 3322 with lens 3324.

In some implementations, the control box 3314 includes the variousapparatus and systems described in this application that provide controlof the automatic electric swing door 3300 from various stimulus such asaudio voice input. Examples of the various apparatus and systems thatare included in the control box 3215 include the command interface unit102, processor 106 and/or device controller 110 in FIG. 1 and FIG. 2,the keyboard data receiver 502, voice data receiver 504 and/or asynaptic data receiver 506 in FIG. 5, the microphone 602 and orvoice-recognition unit 604 in FIG. 6, the device configuration userinterface 702 and/or the modifiable logic circuit 704 in FIG. 7, theelectrical devices in FIG. 26-31, and other tangible systems thatperform methods 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700,1800, 1900, 2000, 2100, 2200, 2300 and 2400.

The apparatus and methods described in FIG. 1-30 can be implemented in acontrol box of any type and variation of automatic swing sliding door.The automatic electric swing door 3300 is shown as one example ofautomatic electric sliding door that can implement the apparatus andmethods of FIG. 1-30.

FIG. 34 is a block diagram of a device-controller 3400 of an automaticdoor, according to an implementation using DPTD relays.Device-controller 3400 is one implementation of the liftdevice-controller 2616 in FIG. 26 for a two dimensional automatic door,such as the automatic electric sliding door 3200, that implements anormally-open double-pole-double-throw (DPDT) relay for each directionof movement of the two dimensional automatic door. Two-dimensionalmovement consists of movement in four directions, hencedevice-controller 3400 consists of four normally-open DTDT relays. Otherimplementation of device-controller 3400 that do not have the safetyfeatures of device-controller 3400 implement single-pole-single-throw(SPST) relays.

To command movement in a particular direction, the corresponding relayis actuated. To actuate the automatic door in an upward direction, DPDTrelay 3402 is actuated by setting voltage “high” (e.g. 3 volts) on pin“P2.0” 3403. When DPDT relay 3402 is actuated, the normally-open DPDTrelay 3402 is closed, thereupon a positive electric current will flowfrom the positive terminal 3404 of the 24 volt DC battery 3406, throughDPDT relay 3408, and through DPDT relay 3402 to Terminal A 3410 oflifting motor 3412 and also when DTDT relay 3402 is actuated, a negativeelectric current will flow from the negative terminal 3414 of the 24volt DC battery 3406, through DPDT relay 3402 to Terminal B 3416 oflifting motor 3412, thus providing electric current to lifting motor3412 in a polarity that will retract a line coupled to the lifting motor3412, thereupon lifting the seat or hammock 3212.

To actuate the automatic door in a downward direction, DPDT relay 3408is actuated by setting voltage “high” (e.g. 3 volts) on pin “P2.1” 3418.When DPDT relay 3408 is actuated, the normally-open DPDT relay 3408becomes closed, thereupon a negative electric current will flow from thenegative terminal 3414 of the 24 volt DC battery 3406, through DPDTrelay 3402, and through DPDT relay 3408 to Terminal A 3410 of liftingmotor 3412 and also when DTDT relay 3408 is actuated, a positiveelectric current will flow from the positive terminal 3404 of the 24volt DC battery 3406, through DPDT relay 3408 to Terminal B 3416 oflifting motor 3412, thus providing electric current to lifting motor3412 in a polarity that will extend a line coupled to the lifting motor3412, thereupon lowering the seat or hammock 3212.

Please note the safety feature in the serial wiring of DTDT relay 3402and DPDT relay 3408. The safety feature lies in that positive electriccurrent will flow from the positive terminal 3404 of the 24 volt DCbattery 3406, through DPDT relay 3408, and through DPDT relay 3402 toTerminal A 3410 of lifting motor 3412 when DPDT relay 3408 is notactuated. Positive electric current will not flow from the positiveterminal 3404 of the 24 volt DC battery 3406, through DPDT relay 3408,and through DPDT relay 3402 to Terminal A 3410 of lifting motor 3412when DPDT relay 3408 is actuated. Therefore, if somehow both DPDT relay3402 and DPDT relay 3408 are simultaneously actuated, no current willflow to the lifting motor 3412, thus preventing both positive electriccurrent and negative electric from simultaneously flowing to Terminal A3410 of lifting motor 3412 and preventing both positive electric currentand negative electric from simultaneously flowing to Terminal B 3416 oflifting motor 3412.

Other implementations use other power sources in place of the 24 volt DCbattery 3406.

To actuate the automatic door lock, DPDT relay 3422 is actuated bysetting voltage “high” (e.g. 3 volts) on pin “P2.2” 3423. When DPDTrelay 3422 is actuated, the normally-open DPDT relay 3422 is closed,thereupon a positive electric current will flow from the positiveterminal 3404 of the 24 volt DC battery 3406, through DPDT relay 3428,and through DPDT relay 3422 to Terminal A 3430 of traversing motor 3432and also when DTDT relay 3422 is actuated, a negative electric currentwill flow from the negative terminal 3434 of the 24 volt DC battery3406, through DPDT relay 3422 to Terminal B 3436 of traversing motor3432, thus providing electric current to traversing motor 3432 in apolarity that will traverse in a forward direction the line coupled tothe traversing motor 3432, thereupon moving the seat or hammock 3212forward.

To actuate the automatic door to unlock, DPDT relay 3428 is actuated bysetting voltage “high” (e.g. 3 volts) on pin “P2.3” 3438. When DPDTrelay 3428 is actuated, the normally-open DPDT relay 3428 becomesclosed, thereupon a negative electric current will flow from thenegative terminal 3434 of the 24 volt DC battery 3406, through DPDTrelay 3422, and through DPDT relay 3428 to Terminal A 3430 of traversingmotor 3432 and also when DTDT relay 3428 is actuated, a positiveelectric current will flow from the positive terminal 3404 of the 24volt DC battery 3406, through DPDT relay 3428 to Terminal B 3436 oftraversing motor 3432, thus providing electric current to traversingmotor 3432 in a polarity that will traverse in a backward direction theline coupled to the traversing motor 3432, thereupon lowering the seator hammock 3212.

Please note the safety feature in the serial wiring of DTDT relay 3422and DPDT relay 3428. The safety feature lies in that positive electriccurrent will flow from the positive terminal 3404 of the 24 volt DCbattery 3406, through DPDT relay 3428, and through DPDT relay 3422 toTerminal A 3430 of traversing motor 3432 when DPDT relay 3428 is notactuated. Positive electric current will not flow from the positiveterminal 3404 of the 24 volt DC battery 3406, through DPDT relay 3428,and through DPDT relay 3422 to Terminal A 3430 of traversing motor 3432when DPDT relay 3428 is actuated. Therefore, if somehow both DPDT relay3422 and DPDT relay 3428 are simultaneously actuated, no current willflow to the traversing motor 3432, thus preventing both positiveelectric current and negative electric from simultaneously flowing toTerminal A 3430 of traversing motor 3432 and preventing both positiveelectric current and negative electric from simultaneously flowing toTerminal B 3436 of traversing motor 3432.

A DPDT relay consists of two separate switches that operate at the sametime, each one with normally open and normally closed contact through acommon connector. Each of the two contacts on the switch can be routedin different ways, depending on the position of the switch. An exampleof a switch is a mini-toggle switch or a switch using a push or pullcontrol.

DPDT relay switches commonly use polarity reversal. That is why somevariations of the DPDT relay, such as the cross-over switches, areinternally wired for that purpose. The cross-over switches have onlyfour terminals or connections, as opposed to six on a DPDT relay. Twoconnections are used for the outputs and the other two for the inputs.The switch then selects either normal or reversed polarity whenconnected to any direct current source such as a battery.

A DPDT relay has a single coil with two arms that move simultaneously.Inside of the DPDT relay, there are two separatesingle-pole-double-throw (SPDT) switch mechanisms.

Computer storage media include volatile and nonvolatile, removable andnon-removable media, implemented in any method or technology for storageof information, such as computer-readable instructions, data structures,program modules or other data. The term “computer storage media”includes, but is not limited to, RAM, ROM, EEPROM, FLASH memory or othermemory technology, CD, DVD, or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other media which can be used to storecomputer-intelligible information and which can be accessed by thecomputation resource 3102.

Communication media typically implements computer-readable instructions,data structures, program modules or other data; and includes anyinformation delivery media.

By way of example, and not limitation, communication media include wiredmedia, such as wired network or direct-wired connections, and wirelessmedia, such as acoustic, RF, infrared and other wireless media. Thescope of the term computer-readable media includes combinations of anyof the above.

Apparatus components of FIG. 1-7 can be implemented as computer hardwarecircuitry or as a computer-readable program, or a combination of both.In another implementation, system in FIG. 1 and FIG. 2 are implementedin an application service provider (ASP) system.

The terminology used herein is for the purpose of describing particularimplementations only and is not intended to limit the inventions. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. The terms “comprises” and/or “comprising,” when used in thisspecification, specify the presence of stated features, integers, steps,operations, elements, and/or components, but do not preclude thepresence or addition of one or more other features, integers, steps,operations, elements, components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription has been presented for purposes of illustration anddescription, but is not intended to be exhaustive or limited in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art without departing from the scope and spiritof the inventions. Implementations are chosen and described in order tobest explain the principles and the practical application, and to enableothers of ordinary skill in the art to understand variousimplementations with various modifications as are suited to theparticular use contemplated.

In the above detailed description, reference is made to the accompanyingdrawings that form a part hereof, and in which is shown by way ofillustration specific implementations which may be practiced. Theseimplementations are described in sufficient detail to enable thoseskilled in the art to practice the implementations, and otherimplementations may be utilized and that logical, mechanical, electricaland other changes may be made without departing from the scope of theimplementations. The following detailed description is, therefore, notto be taken in a limiting sense.

As will be appreciated by one skilled in the art, the present inventionsmay be implemented as a system, method or computer program product.Accordingly, the some of the present inventions may take the form of anentirely hardware implementation, an entirely software implementation(including firmware, resident software, micro-code, etc.) or animplementation combining software and hardware aspects that may allgenerally be referred to herein as a “circuit” “module” or “system”.Furthermore, the present inventions may take the form of a computerprogram product implemented in any tangible medium of expression havingcomputer-usable program code implemented in the medium.

Any combination of one or more computer usable or computer readablemedium(s) may be utilized. The computer-usable or computer-readablemedium may be, for example but not limited to, an electronic, magnetic,optical, electromagnetic, infrared, or semiconductor system, apparatus,device, or propagation medium. More specific examples (a non-exhaustivelist) of the computer-readable medium would include the following: anelectrical connection having one or more wires, a portable computerdiskette, a hard disk, a random access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), an optical fiber, a portable compact disc read-only memory(CD-ROM), an optical storage device, a transmission media such as thosesupporting the Internet or an intranet, or a magnetic storage device. Inthe context of this document, a computer-usable or computer-readablemedium may be any medium that can contain, store, communicate,propagate, or transport the program for use by or in connection with theinstruction execution system, apparatus, or device. The computer usableprogram code may be transmitted using any appropriate medium, includingbut not limited to wireless, wireline, optical fiber cable, RF, etc.

In computer-readable program implementations, the programs can bestructured in an object-orientation using an object-oriented languagesuch as Java, Smalltalk or C++, and the programs can be structured in aprocedural-orientation using a procedural language such as COBOL or C.The software components communicate in any of a number of means that arewell-known to those skilled in the art, such as application programinterfaces (API) or interprocess communication techniques such as remoteprocedure call (RPC), common object request broker architecture (CORBA),Component Object Model (COM), Distributed Component Object Model (DCOM),Distributed System Object Model (DSOM) and Remote Method Invocation(RMI). The components execute on as few as one computer as in computerenvironment 3100 in FIG. 31, or on at least as many computers as thereare components.

Computer program code for carrying out operations of the presentinventions may be written in any combination of one or more programminglanguages, including an object oriented programming language such asJava, Smalltalk, C++ or the like and conventional procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The program code may execute entirely on the user's computer,partly on the user's computer, as a stand-alone software package, partlyon the user's computer and partly on a remote computer or entirely onthe remote computer or server. In the latter scenario, the remotecomputer may be connected to the user's computer through any type ofnetwork, including a local area network (LAN) or a wide area network(WAN), or the connection may be made to an external computer (forexample, through the Internet using an Internet Service Provider).

The present inventions are described above with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to implementations. Each block ofthe flowchart illustrations and/or block diagrams, and combinations ofblocks in the flowchart illustrations and/or block diagrams, can beimplemented by computer program instructions. These computer programinstructions may be provided to a processor of a general purposecomputer, special purpose computer, or other programmable dataprocessing apparatus to produce a machine, such that the instructions,which execute via the processor of the computer or other programmabledata processing apparatus, create means for implementing thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide processes for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

Some implementations include a computer program product that includes acomputer-usable medium having computer-usable program code implementedtherewith, the computer-usable program code including computer-usableprogram code configured to perform specific functions. Someimplementations include a field-programmable gate array that is operableto perform specific functions. Some implementations include acomputer-accessible medium having executable instructions capable ofdirecting a processor to perform specific functions. Someimplementations include a computer-usable medium including a program tocontrol an automatic door, the program comprising computer program codeto perform specific functions. Some method implementations includerepresenting a specific original physical reality with specific originaldata, electronically transforming the specific original data intospecific transformed data using a novel and nonobvious process, andrepresenting the specific transformed data as a specific transformedphysical reality in the form of a visual depiction.

CONCLUSION

An omni-input autonomous voice controlled door opening and lockingsystem is described. A technical effect of the system is filteringand/or suppression of background noise of audio command input. Atechnical effect of the system is electrical control of an automaticdoor in reference to commands received from voice input. Althoughspecific implementations are illustrated and described herein, it willbe appreciated by those of ordinary skill in the art that anyarrangement which is calculated to achieve the same purpose may besubstituted for the specific implementations shown. This application isintended to cover any adaptations or variations. One of ordinary skillin the art will appreciate that implementations can be made in softwareimplementation or any other hardware implementation that provides therequired function.

In particular, one of skill in the art will readily appreciate that thenames of the methods and apparatus are not intended to limitimplementations. Furthermore, additional methods and apparatus can beadded to the components, functions can be rearranged among thecomponents, and new components to correspond to future enhancements andphysical devices used in implementations can be introduced withoutdeparting from the scope of implementations. One of skill in the artwill readily recognize that implementations are applicable to futureautomatic doors and different command input devices.

The terminology used in this application meant to include all automaticdoors, and voice recognition systems and alternate technologies whichprovide the same functionality as described herein.

1. (canceled)
 2. (canceled)
 3. (canceled)
 4. (canceled)
 5. (canceled) 6.(canceled)
 7. (canceled)
 8. (canceled)
 9. (canceled)
 10. (canceled) 11.(canceled)
 12. (canceled)
 13. (canceled)
 14. (canceled)
 15. (canceled)16. (canceled)
 17. (canceled)
 18. (canceled)
 19. (canceled) 20.(canceled)
 21. (canceled)
 22. (canceled)
 23. (canceled)
 24. (canceled)25. (canceled)
 26. (canceled)
 27. (canceled)
 28. (canceled) 29.(canceled)
 30. (canceled)
 31. (canceled)
 32. (canceled)
 33. (canceled)34. (canceled)
 35. (canceled)
 36. (canceled)
 37. (canceled) 38.(canceled)
 39. (canceled)
 40. (canceled)
 41. (canceled)
 42. (canceled)43. (canceled)
 44. (canceled)
 45. (canceled)
 46. (canceled) 47.(canceled)
 48. (canceled)
 49. (canceled)
 50. (canceled)
 51. (canceled)52. (canceled)
 53. (canceled)
 54. (canceled)
 55. (canceled) 56.(canceled)
 57. (canceled)
 58. (canceled)
 59. (canceled)
 60. (canceled)61. (canceled)
 62. (canceled)
 63. (canceled)
 64. (canceled) 65.(canceled)
 66. (canceled)
 67. (canceled)
 68. (canceled)
 69. (canceled)70. (canceled)
 71. (canceled)
 72. (canceled)
 73. (canceled) 74.(canceled)
 75. (canceled)
 76. (canceled)
 77. (canceled)
 78. (canceled)79. (canceled)
 80. (canceled)
 81. (canceled)
 82. (canceled) 83.(canceled)
 84. (canceled)
 85. (canceled)
 86. (canceled)
 87. (canceled)88. (canceled)
 89. (canceled)
 90. (canceled)
 91. (canceled) 92.(canceled)
 93. (canceled)
 94. (canceled)
 95. (canceled)
 96. (canceled)97. (canceled)
 98. (canceled)
 99. (canceled)
 100. (canceled) 101.(canceled)
 102. (canceled)
 103. (canceled)
 104. (canceled) 105.(canceled)
 106. (canceled)
 107. (canceled)
 108. (canceled) 109.(canceled)
 110. (canceled)
 111. (canceled)
 112. (canceled) 113.(canceled)
 114. (canceled)
 115. (canceled)
 116. (canceled) 117.(canceled)
 118. (canceled)
 119. (canceled)
 120. (canceled) 121.(canceled)
 122. (canceled)
 123. (canceled)
 124. (canceled) 125.(canceled)
 126. (canceled)
 127. (canceled)
 128. (canceled) 129.(canceled)
 130. (canceled)
 131. (canceled)
 132. (canceled) 133.(canceled)
 134. (canceled)
 135. (canceled)
 136. (canceled) 137.(canceled)
 138. (canceled)
 139. (canceled)
 140. (canceled) 141.(canceled)
 142. (canceled)
 143. (canceled)
 144. (canceled) 145.(canceled)
 146. (canceled)
 147. (canceled)
 148. (canceled) 149.(canceled)
 150. (canceled)
 151. (canceled)
 152. (canceled) 153.(canceled)
 154. (canceled)
 155. (canceled)
 156. (canceled) 157.(canceled)
 158. (canceled)
 159. (canceled)
 160. (canceled) 161.(canceled)
 162. (canceled)
 163. (canceled)
 164. (canceled) 165.(canceled)
 166. (canceled)
 167. (canceled)
 168. (canceled) 169.(canceled)
 170. (canceled)
 171. (canceled)
 172. (canceled) 173.(canceled)
 174. (canceled)
 175. (canceled)
 176. (canceled) 177.(canceled)
 178. (canceled)
 179. (canceled)
 180. (canceled) 181.(canceled)
 182. (canceled)
 183. (canceled)
 184. (canceled) 185.(canceled)
 186. (canceled)
 187. (canceled)
 188. (canceled) 189.(canceled)
 190. (canceled)
 191. (canceled)
 192. (canceled) 193.(canceled)
 194. (canceled)
 195. (canceled)
 196. (canceled) 197.(canceled)
 198. (canceled)
 199. (canceled)
 200. (canceled) 201.(canceled)
 202. (canceled)
 203. (canceled)
 204. (canceled) 205.(canceled)
 206. (canceled)
 207. (canceled)
 208. (canceled) 209.(canceled)
 210. (canceled)
 211. (canceled)
 212. (canceled) 213.(canceled)
 214. (canceled)
 215. (canceled)
 216. (canceled) 217.(canceled)
 218. (canceled)
 219. (canceled)
 220. (canceled) 221.(canceled)
 222. (canceled)
 223. (canceled)
 224. (canceled) 225.(canceled)
 226. (canceled)
 227. (canceled)
 228. (canceled) 229.(canceled)
 230. (canceled)
 231. (canceled)
 232. (canceled) 233.(canceled)
 234. (canceled)
 235. (canceled)
 236. (canceled) 237.(canceled)
 238. (canceled)
 239. (canceled)
 240. (canceled) 241.(canceled)
 242. (canceled)
 243. (canceled)
 244. (canceled) 245.(canceled)
 246. (canceled)
 247. (canceled)
 248. (canceled) 249.(canceled)
 250. (canceled)
 251. (canceled)
 252. (canceled) 253.(canceled)
 254. (canceled)
 255. (canceled)
 256. (canceled) 257.(canceled)
 258. (canceled)
 259. (canceled)
 260. (canceled) 261.(canceled)
 262. (canceled)
 263. (canceled)
 264. (canceled) 265.(canceled)
 266. (canceled)
 267. (canceled)
 268. (canceled) 269.(canceled)
 270. (canceled)
 271. (canceled)
 272. (canceled) 273.(canceled)
 274. (canceled)
 275. (canceled)
 276. (canceled) 277.(canceled)
 278. (canceled)
 279. (canceled)
 280. (canceled) 281.(canceled)
 282. (canceled)
 283. (canceled)
 284. (canceled) 285.(canceled)
 286. (canceled)
 287. (canceled)
 288. (canceled) 289.(canceled)
 290. (canceled)
 291. (canceled)
 292. (canceled) 293.(canceled)
 294. (canceled)
 295. (canceled)
 296. (canceled) 297.(canceled)
 298. (canceled)
 299. (canceled)
 300. (canceled) 301.(canceled)
 302. (canceled)
 303. (canceled)
 304. (canceled) 305.(canceled)
 306. (canceled)
 307. (canceled)
 308. (canceled) 309.(canceled)
 310. A method comprising: receiving a command to open a door;responsive to the receiving, initiating an obstacle detection process;initiating opening of the door; performing the obstacle detectionprocess while the door is opening; responsive to an obstacle beingdetected, evaluating an obstacle warning parameter; if the obstaclewarning parameter is set to NO, halting the door opening; if theobstacle warning parameter is set to YES; initializing a warning counterto the maximum number of iterations of a warning; and responsive to theinitialization of the warning counter, performing a loop the maximumnumber of iterations indicated by the warning counter; the loopcomprising providing an obstacle warning, and polling for a response andif no response to the obstacle warning is received, performing apredetermined default action, and if a response to the obstacle warningis received, performing a door command in accordance with the response.311. The method of claim 310, wherein the loop further comprises:responsive to the warning counter being initialized, decrement thewarning counter by 1; providing the obstacle warning; starting a timer;responsive to a response to the obstacle warning being received within atime limit of the timer, performing the door command in accordance withthe response and terminating the loop; responsive to the response to theobstacle warning not being received within the time limit of the timer,evaluating the warning counter in comparison to zero; responsive to thewarning counter being zero, performing a predetermined default actionand terminating the loop; responsive to the warning counter being notzero, reentering the loop.
 312. The method of claim 310, whereinperforming the door command in accordance with the response furthercomprises: evaluating the response for an indication of authority; andperforming the response in accordance with the indication of theauthority.
 313. The method of claim 310 further comprising: providingthe response from speech recognition.
 314. The method of claim 310further comprising: receiving a signal of the response from a hand heldcontroller.
 315. The method of claim 310 wherein the obstacle warningfurther comprises: audio enunciation of “An obstacle has been detected.Do you want to Stop, Open or Close the door?”.
 316. The method of claim310 wherein the response further comprises: “stop” “open” and “close”.317. (canceled)
 318. (canceled)
 319. (canceled)
 320. (canceled) 321.(canceled)
 322. (canceled)
 323. A method comprising: receiving a commandto close a door; responsive to the receiving, initiating an obstacledetection process; initiating closing of the door; performing theobstacle detection process while the door is closing; responsive to anobstacle being detected, evaluating an obstacle warning parameter; ifthe obstacle warning parameter is set to NO, halting the door closing;if the obstacle warning parameter is set to YES; initializing a warningcounter to the maximum number of iterations of a warning; and responsiveto the initialization of the warning counter, performing a loop themaximum number of iterations indicated by the warning counter; the loopcomprising providing an obstacle warning, and polling for a response andif no response to the obstacle warning is received, performing apredetermined default action, and if a response to the obstacle warningis received, performing a door command in accordance with the response.324. The method of claim 323, wherein the loop further comprises:responsive to the warning counter being initialized, decrement thewarning counter by 1; providing the obstacle warning; starting a timer;responsive to a response to the obstacle warning being received within atime limit of the timer, performing the door command in accordance withthe response and terminating the loop; responsive to the response to theobstacle warning not being received within the time limit of the timer,evaluating the warning counter in comparison to zero; responsive to thewarning counter being zero, performing a predetermined default actionand terminating the loop; responsive to the warning counter being notzero, reentering the loop.
 325. The method of claim 323, whereinperforming the door command in accordance with the response furthercomprises: evaluating the response for an indication of authority; andperforming the response in accordance with the indication of theauthority.
 326. The method of claim 323 further comprising: providingthe response from speech recognition.
 327. (canceled)
 328. The method ofclaim 323 wherein the obstacle warning further comprises: audioenunciation of “An obstacle has been detected. Do you want to Stop, Openor Close the door?”.
 329. The method of claim 323 wherein the responsefurther comprises: “stop” “open” and “close”.
 330. (canceled) 331.(canceled)
 332. (canceled)
 333. (canceled)
 334. (canceled) 335.(canceled)
 336. (canceled)
 337. (canceled)
 338. (canceled) 339.(canceled)
 340. (canceled)
 341. (canceled)
 342. (canceled) 343.(canceled)
 344. (canceled)
 345. (canceled)
 346. (canceled) 347.(canceled)
 348. (canceled)
 349. (canceled)
 350. (canceled) 351.(canceled)
 352. (canceled)
 353. (canceled)
 354. (canceled) 355.(canceled)
 356. (canceled)
 357. (canceled)
 358. A method comprising:detecting a presence of a person on the exterior side of an exteriordoor; if a door-opening-query parameter is determined to be set to truethen announcing an door-opening-query; if a response is not detectedafter a specified period of time then repeating the announcing; and if aresponse to the door-opening-query is received within the specifiedperiod of time, then performing a door command in accordance with theresponse.
 359. The method of claim 358 further comprising: if a responseis not detected after another specified period of time, then performinga default action.
 360. The method of claim 358 further comprising:providing the response from speech recognition.
 361. The method of claim358 further comprising: receiving a signal of the response from a handheld controller.
 362. The method of claim 358 wherein thedoor-opening-query further comprises: audio enunciation of “A person isat the front door. Do you want to open the door?”.
 363. The method ofclaim 358 wherein the response further comprises: “YES”, “OPEN”, or“NO”.
 364. The method of claim 358 wherein the door command furthercomprises: “lock” “unlock” “close” “open” “activate” and “help”.